【发布时间】:2014-07-19 07:11:24
【问题描述】:
我有一个使用 NDK 的 Android/Eclipse 项目,我最近通过将以下内容添加到我的 Application.mk 文件中启用了 c++11 支持:
NDK_TOOLCHAIN_VERSION := 4.8 #same result here with clang
APP_CPPFLAGS += -std=c++11
这基本上可以正常工作,c++11 功能可用并按预期编译。这适用于ndk-build 和 Eclipse 构建(它只是调用 nkd-build),但是 eclipse 代码解析器现在变得混乱。当我打开一个使用在 c++11 中添加到 STL 的类型的文件时(例如 std::unique_ptr),我在 Problems 选项卡中看到红色曲线和一个错误条目,上面写着 Symbol 'unique_ptr' could not be resolved。这不会那么糟糕,但是如果该列表中存在错误,Eclipse 将拒绝启动(或调试)应用程序。右键单击 #include <memory> 行并选择 Open Declaration 也会打开错误的 (4.6) 文件。
当检查 C/C++ General --> Paths and Symbols --> Includes 下的项目属性时,它仍然会列出旧的 (4.6) include Show Built-in values em> 打勾:Screenshot
那些只是从某个地方缓存的,我可以让它重新生成这些条目吗?我显然试图清理和重建项目,但没有任何效果。如果可以避免,我宁愿不手动添加它们,将 NDK 升级到新版本已经需要进行相当多的更改,直到它再次编译。这些条目是从哪里生成的?如何触发更新?
【问题讨论】:
标签: android c++ eclipse c++11 android-ndk