【问题标题】:Mac Eclipse not resolving C++ lib functions in NDKMac Eclipse 无法解析 NDK 中的 C++ lib 函数
【发布时间】:2013-09-29 13:46:17
【问题描述】:

我正在使用 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 在我的源代码中也不明显可见。

【问题讨论】:

  • 我有同样的问题,fwiw

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


【解决方案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 编写。您需要将项目设为“混合 Java 和 C/C++”(不是我在教程之外看到它这样称呼它,哈哈)

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 > Window > Preferences > Android > NDK > NDK Location 中输入 NDK 文件夹的无空格完整路径)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-01
    • 2019-06-17
    • 2013-01-01
    相关资源
    最近更新 更多