mrubyをAndroid Studioのエミュレーターで動かすためのlibmruby.aを作る

  • 2
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

はじめに

Android x86なlibmruby.aができれば、Android Studioで高速なエミュレーターを使えるはずと思いやってみた。

Android x86_64向けのlibmruby.aを作るには

toolchain :androidではダメ。

toolchain :android, {:arch => "x86_64",:platform => "android-21"}

と、archにx86_64の指定は当然ながら、platformの指定も必要。

これがないと、

stdint.hがないと怒られる。

Android向けのクロスビルドの設定例

こんな感じで、libmruby.aをarmとx86_64向けに作れた。

MRuby::CrossBuild.new('android') do |conf|
    toolchain :android
    # include the default GEMs
    conf.gembox 'full-core'
end

MRuby::CrossBuild.new('android_x86') do |conf|
    toolchain :android, {:arch => "x86_64",:platform => "android-21"}

    # include the default GEMs
    conf.gembox 'full-core'
end

と、gemboxの指定も忘れずに。。(忘れてlibmaruby.a作って、mrb_load_stringのシンボル参照の解決できずにハマった。)

参考資料