use*_*546 12 c++ eclipse android android-ndk
我在Ubuntu上使用Android NDK r7和eclipse Indigo.我将我的java项目设置为使用C++特性.我在C++端使用STL,所以我补充道
Run Code Online (Sandbox Code Playgroud)APP_STL := gnustl_static
在Application.mk文件中.
ndk-build成功编译我的代码并创建一个共享对象.
然而,eclipse索引器抱怨缺少STL符号.例如
"方法'push_back'无法解析""符号'向量'无法解析"
只有在编辑器中打开C++文件时才会发生这种情况.最终eclipse不会创建我的apk.我添加了使用ndk(Properties => C/C++ General => Code Analasys => Path&symbols)的gnu STL标头的路径:
Run Code Online (Sandbox Code Playgroud)android-ndk-r7/sources/cxx-stl/gnu-libstdc++/include android-ndk-r7/sources/cxx-stl/gnu-libstdc++/include/bits
目前的解决方法是关闭打开的C++文件以使eclipse高兴.
有趣的是,eclipse索引器的工作正常,其中包含了标题
机器人-NDK-R7 /平台/机器人-14 /弓形臂的/ usr /包括
有没有我忘记在日食中设置的东西?
Vio*_*ffe 24
您必须将STL的路径添加到项目设置,以便Eclipse也对其进行索引.项目 - >属性 - > C/C++一般 - >包含.这是我添加的内容:
<path_to_NDK>/sources/cxx-stl/gnu-libstdc++/include
<path_to_NDK>/sources/cxx-stl/gnu-libstdc++/libs/armeabi-v7a/include
<path_to_NDK>/platforms/android-9/arch-arm/usr/include
Run Code Online (Sandbox Code Playgroud)
有些人已经能够通过添加__GXX_EXPERIMENTAL_CXX0X__
到Eclipse中来解决这个问题,如" 不使用Android NDK r8的智能指针 "中所述.但这在某些版本的Eclipse中不起作用,例如我的Eclipse(Eclipse Juno v4.2).
因此,作为一个解决方法,我去了Eclipse Preferences - > C/C++ - > Code Analysis,然后我将一些问题的严重性从Error更改为Warning,因为我使用NDK来编译我的代码,所以这些只有效果索引器.我更改了"符号未解决"并修复了我的错误,但您可能还想更改其他一些错误.起初它没有为我修复错误,直到我关闭并重新打开C++文件.右键单击项目并选择"索引 - >重建"也可能有助于刷新它.
现在Eclipse将这些行强调为警告,并允许我继续构建和运行和调试我的NDK应用程序.