使用STL和Android NDK时的Eclipse索引器错误

use*_*546 12 c++ eclipse android android-ndk

我在Ubuntu上使用Android NDK r7和eclipse Indigo.我将我的java项目设置为使用C++特性.我在C++端使用STL,所以我补充道

APP_STL := gnustl_static
Run Code Online (Sandbox Code Playgroud)

在Application.mk文件中.

ndk-build成功编译我的代码并创建一个共享对象.

然而,eclipse索引器抱怨缺少STL符号.例如

"方法'push_back'无法解析""符号'向量'无法解析"

只有在编辑器中打开C++文件时才会发生这种情况.最终eclipse不会创建我的apk.我添加了使用ndk(Properties => C/C++ General => Code Analasys => Path&symbols)的gnu STL标头的路径:

android-ndk-r7/sources/cxx-stl/gnu-libstdc++/include
android-ndk-r7/sources/cxx-stl/gnu-libstdc++/include/bits
Run Code Online (Sandbox Code Playgroud)

目前的解决方法是关闭打开的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)

  • 我错过了这个`<path_to_NDK>/sources/cxx-stl/gnu-libstdc ++/libs/armeabi-v7a/include`我在Properties => C/C++ General => Code Analasys => Path&symbols and it中添加了它修正了我的错误. (4认同)

She*_*ami 6

有些人已经能够通过添加__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应用程序.