2012年2月10日金曜日

android ndk on eclipse

サンプルプログラムでエラー。

hellojni

cygwinからプロジェクトをビルドしようとしたところ、
ndk-buildで
Android NDK: Host 'awk' tool is outdated. Please define HOST_AWK to point to Gawk or Nawk !
とエラーが表示される。

参考:
http://d.hatena.ne.jp/none53/20111205/1323077921


gawk.exeはcygwin\binに入ってて、同フォルダ内のawkが、gawkへのリンクになってる。

それで、はじめに読み込まれていたandroid-ndk-r7\prebuilt\windows\binの中のawk.exeは使わずに、cygwin\binのgawkを使うべきだったらしい。

ということで、android-ndk-r7のawk.exeの名前を変えればいいということらしい。
awk.exe -> awk_.exe
のようにする。


これで終わり。

設定完了後、hello-jniフォルダで
ndk-build -B
を実行。
そうすると、libsフォルダが作られて、.soファイルが中にコピーされる。

-------------------------------
さらに、eclipseで自動でndk-buildを実行できるようにする。

参考
http://blog.cnu.jp/2011/07/05/build-ndk-in-eclipse/ これはMac用でちょっと違うらしい。
http://mobilepearls.com/labs/ndk-builder-in-eclipse/
を参照。ただし、これだけではうまくできない。
windows用で.batファイルを使うことで解決。
http://blog.malrone.info/archives/1535

この中で、処理が遅いから、-loginを使わないと書いてあるけど、-loginしないとmakeとか使えなくて、コンパイルできず。
ということで、Cygwin.batを以下のように記述。
ちょっと長いけど、フォルダを変更することなく、実行可能。
それと、cygwin環境だと、"c:/"が"/cygdrive/c/"と表されるけど、どちらでもいいみたい。

c:/cygwin/bin/bash -login -c "c:/programming_environment/android-ndk-r7/ndk-build -C c:/programming_environment/android-ndk-r7/samples/hello-jni"

0 件のコメント:

コメントを投稿