Ger*_*uzi 1 java-native-interface native android-ndk
我在OSX中的Eclipse中使用Java和本机JNI C++代码混合使用NDK r8b的android项目.我希望能够在std命名空间中使用常规C++类(map,string).
在Android.mk文件中添加了以下内容:
APP_STL:= stlport_shared
在这里我也尝试过静态库.请参阅http://docs.huihoo.com/android/ndk/r5/CPLUSPLUS-SUPPORT.html
STLPORT_FORCE_REBUILD:= true
还尝试删除强制构建.
在C/C++路径和变量中:
$ {} NDKROOT /来源/ CXX-STL/stlport的/ stlport的
"map"和"string"标题包含在.cpp文件中.我可以使用std :: string和std :: map.助理接过他们.搜索定义(eclipse中的F3)时,会显示头文件,即已解决.此外,大纲显示"字符串"和"地图"标题文件,当双击它们时,它也会将标题放在最前面.
但是,构建不会提取它们.我得到以下内容:
> 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
Run Code Online (Sandbox Code Playgroud)
有谁知道还有什么可以尝试.
在命令行上使用V = 1参数ndk-build.这将回显所有已执行的命令,包括编译和链接,以及NDK构建所分配的所有参数.
在您的情况下,可以在没有详细构建日志的情况下找到答案:
在Android.mk文件中添加了以下内容:
APP_STL := stlport_shared
这是你的错.您引用的文档解释了此设置应该进入Application.mk.此文件通常被视为可选.是的.您可以APP_STL在命令行上指定:而不是创建此文件:
ndk-build V=1 APP_STL=stlport_static
Run Code Online (Sandbox Code Playgroud)
我不知道为什么以及Eclipse如何解析#include <string>或映射.
| 归档时间: |
|
| 查看次数: |
3034 次 |
| 最近记录: |