Mac Eclipse无法解析NDK中的C ++ lib函数

时间:2013-09-24 11:10:27

标签: android c++ eclipse macos android-ndk

我正在使用Eclipse for Mac开发本机应用程序,但我无法获得std :: string或std :: map来解析。

我已经不得不在路径中添加一些包含目录来处理NDK没有设置好开箱即用;目前我有

.../Development/android-ndk-r9/sources/cxx-stl/gnu-libstdc++/4.8/include
.../Development/android-ndk-r9/platforms/android-18/arch-arm/usr/include
.../vuforia-sdk-android-2-6-10/build/include
.../android-ndk-r9/sources/cxx-stl/system/include

设置为C ++符号路径,#include <string>似乎运行正常。但是,对std :: string的所有引用都没有解析,Eclipse说

  

无法解析类型'std :: string'。

我知道这段代码的构建是因为我在Windows PC上成功构建了它;这是一个描述的日食问题。如何解决这些问题?

编辑1:我查看了<string>内部,似乎它主要包含一堆其他包含,例如#include <bits/c++config.h>。所有这些似乎都解决了,但我会看看我是否能找到它们并确定std::string实际居住的地方。

编辑2:我可以找到std::basic_string,但不能std::string(还)。

编辑3:我的源代码显然看不到std::basic_string

1 个答案:

答案 0 :(得分:1)

我不确定这是否适合您。我的经历不同,我在Windows上,而我只是试图让C(而不是C ++)代码工作。但遇到了完全相同的问题。我的解决方案似乎也可以用于C ++。据我所知,Mac上的Eclipse / ADT与Windows上的相同。所以这不应该是一个问题。谁知道,我可以说出我的一个 - 。

然而,我认为这个问题已经解决了两次。这是我如何解决它。我按照教程:http://mhandroid.wordpress.com/2011/01/23/using-eclipse-for-android-cc-development/

注意事项:

1)在Eclipse / ADT for Android中开发时。它始终假定您使用Java编写。您需要将项目设为“Mixed Java&amp; C / C ++”(不是我在教程之外看到它称之为lol)

2)您的ndk-build应该可以在命令行中正常工作(即使它可能无法在Eclipse中编译)。

3)在本教程中,似乎可以识别C / C ++的两件事是“步骤5:转换为C / C ++项目”,然后是步骤6-8(这似乎是一大步)。

4)在步骤7中,在“构建命令”下。您可能必须使用ndk-build的完整路径(无空格)。 (* Windows用户在此输入“ndk-build.cmd

5)在步骤8中,还包括完整路径..没有空格。但是,您可以在此处为“GNC C ++”添加路径。 (这是我对你的解决方案的猜测)

6)如果所有其他方法都失败了...它应该在C中工作。请完全尝试步骤8,并仅使用C语法。因为,在这个较旧的教程(http://mindtherobot.com/blog/452/android-beginners-ndk-setup-step-by-step/)的顶部,它讨论了NDK的有限性。它说C ++功能有限。否则,第二个教程似乎已经过时了。不再需要Cygwin和命令行编译,我的Eclipse安装具有开箱即用的C / C ++支持。但是,它仍然可用/有效。

PT

(以及类似的说明,以及那些寻求NDK帮助的人。还要确保在Eclipse&gt; Window&gt; Preferences&gt; Android&gt; NDK&gt;中输入NDK文件夹的无空间完整路径。 NDK位置)