OSX の Eclipse で、NDK r8b を使用して、Android プロジェクトに Java とネイティブ JNI C++ コードを組み合わせて使用しています。std 名前空間で通常の C++ クラス (マップ、文字列) を使用できるようにしたいと考えています。
Android.mk ファイルに、次のものが追加されました。
APP_STL := stlport_shared
ここで静的ライブラリも試しました。http://docs.huihoo.com/android/ndk/r5/CPLUSPLUS-SUPPORT.htmlを参照してください。
STLPORT_FORCE_REBUILD := 真
また、強制ビルドを削除しようとしました。
C/C++ パスと変数:
${NDKROOT}/sources/cxx-stl/stlport/stlport
「map」および「string」ヘッダーが .cpp ファイルに含まれていました。std::string と std::map を使用できます。アシスタントはそれらを拾います。定義を検索すると (Eclipse では F3)、ヘッダー ファイルが表示されます。つまり、解決されます。また、アウトラインには「string」および「map」ヘッダー ファイルが表示され、それらをダブルクリックすると、ヘッダーも前面に表示されます。
ただし、ビルドはそれらを取得しません。私は以下を取得します:
> ndk-build
> Gdbserver : [arm-linux-androideabi-4.6] libs/armeabi/gdbserver
> Gdbsetup : libs/armeabi/gdb.setup
> Gdbserver : [arm-linux-androideabi-4.6] libs/armeabi-v7a/gdbserver
> Gdbsetup : libs/armeabi-v7a/gdb.setup
> Compile++ arm : ImageTargets <= ImageTargets.cpp
> xxx/Project/Code/MyImageTarget/jni/ImageTargets.cpp:20:18: fatal error: string: No such file > or directory
> compilation terminated.
> make: *** [xxx/Project/Code/MyImageTarget/obj/local/armeabi/objs-> debug/ImageTargets/ImageTargets.o] Error 1
他に何を試すことができるか、誰にもわかりません。