切换到 GCC 4.8 后,Eclipse 未更新 "built-in" Android NDK 项目的包含路径
Eclipse not updating "built-in" include paths for Android NDK Project after switching to GCC 4.8
我有一个使用NDK的Android/Eclipse项目,我最近通过在我的应用程序中添加以下内容来启用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下的项目属性时,当Show Built-in values被选中时,它仍然列出旧的(4.6)Includes:
这些只是缓存从某个地方,我可以得到它重新生成这些条目?显然,我已经尝试过清理和重建这个项目,但没有效果。如果可以避免,我宁愿不手动添加它们,升级NDK到新版本已经需要相当多的更改,直到它再次编译。这些条目是从哪里生成的,如何触发更新?
我希望我能说我有一个明确的答案给你,因为我自己也一直在与这个问题作斗争,但我确实有一个体面的解决办法。对于初学者来说,"CDT管理构建设置项"下的"内置"项是基于位于jni
目录中的Application.mk
文件的内容生成的。没有其他方法可以更改它们,这些就是c++透视图的Project Explorer中的"Includes"部分。但是我看到必须阅读NDK安装中的documentation.html
才能看到该文件中已经放入了什么。问题就变成了,一旦你改变了什么,或者呼吸太困难,你的包容就会突然地、不可逆转地变得没有解决。解决这个问题的方法是回忆每个包含条目的确切路径,右键单击项目,转到New->Folder
,然后在对话框中单击Advanced
,并选择Link to Alternate Location (Linked Folder)
。然后导航到include文件夹的路径(或者扩展一个变量,如果你喜欢的话),将其重命名为描述性的东西(你不能有4个名为"include"的链接文件夹),然后volil
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- netcat command in c++
- Difference in displaying cv2 Mat
- Incomings Call with Android Sip stack in Embarcadero C++ bui
- 可以循环访问未'built in'对象的 Fbx属性
- 要读取一个从一个游戏应用程序(In C )到我的Android应用程序的文件
- Cocos2d-x Crash at setResponseCallback in Android
- UnsatisfiedLinkError for native cpp function in Android app
- "built-in" C++函数
- Receiving onActivityResult in Android NDK for AccountPicker
- 将""Treat wchar_t as built-in type""设置为"否"是否会影响 C# 互操作?
- C++ vs Java in Android
- WebView from NDK in android
- JNIEXPORT and JNICALL in Android NDK
- :<built-in>1:2: 警告:使用 C++0x 长整型整数常量 [-Wlong-long]
- Step In使用原生代码会导致Android Studio中的垃圾
- 开发中的过剩C++错误"redeclaration of C++ built-in type `short'"
- 切换到 GCC 4.8 后,Eclipse 未更新 "built-in" Android NDK 项目的包含路径
- <built-in> 预处理器输出中C++什么?
- Android NDK STL c++_shared w/LIBCXX_FORCE_REBUILD results in