android sdk r8 と NDK r5

android sdk r8 と NDK r5を導入
ネイティブ側のビルドがなかなか通らなかったのはAndroid.mkの書き方のせいだった

まずこの書き方は使えないみたいなので
[java] LOCAL_CXXFLAGS += -I$(STL_INC) -I$(BOOST_INC)
[/java]
こんな感じに変更
[java] LOCAL_C_INCLUDES := $(STL_INC)
LOCAL_C_INCLUDES += $(BOOST_INC)
[/java]

stlportライブラリをリンクするための(これまで使えていた)パス付きの書き方がうまく使えなかったので

[java] LOCAL_LDLIBS += /cygdrive/c/android/android-ndk-r5/sources/xxxxxxxxx
[/java]
こんな感じに変更

[java] LOCAL_LDLIBS += -lstlport_static
[/java]
その際stlportはNDK付属のものを使うため
android-ndk-r5sourcescxx-stlstlportlibsarmeabilibstlport_static.aを
android-ndk-r5platformsandroid-5arch-armusrlibにコピーして使ってみた

stlport関連は上記のような設定は必要ありませんでした。
jniフォルダにApplication.mkを作ってこんな感じに書いておくだけでいいみたい。

[java] APP_STL := stlport_static
[/java]
しかし
なんだかいままでと表示が違う
調べてみて、もしstlが原因なら昔のライブラリに戻すかも
12/11追記:デバッグログ出したり、なんどかリビルドしていたら元の表示にもどった
      おかしかったときはビルド失敗していたのかなぁ

あとこの作業中にこんなビルドエラーが出てきてしばらく悩んだ
[java] /cygdrive/d/xxxxxxx/xxxxxxx.o.d:1: *** target pattern contains no %4$s. Stop.
[/java]
これは プロジェクトフォルダ/obj/local以下あたりを一旦削除したら解消した。

あとndk-buildに V:=1 オプション付けたらビルド時の出力がそのまま出ることを知った。
こんな感じ
[java] ndk-build -B -j V:=1
[/java]

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください