如何更改指向已删除 android-ndk-r9 安装的 built-in C/C++ 路径?
How to change built-in C/C++ paths pointing to a deleted android-ndk-r9 installation?
我最近将我的 NDK 从 android-ndk-r9 升级到 android-ndk-r10(准确地说是 r10d)。 Eclipse 是 4.4 Luna(Luna Service Release 1 (4.4.1);Build id:20140925-1800)。 Eclipse 已针对其发行版进行了全面修补。我更新了所有 Eclipse 插件(包括 ADT),因此它们已完全修补。而且我还在 .bash_profile
中更改了我的 ANDROID_NDK_ROOT
以指向新的 NDK 目录。
在 Eclipse 首选项下 → Android → NDK,Eclipse 显示新的 android-ndk-r10 路径(我必须手动设置它)。
在项目属性 → C/C++ 常规 → 路径和符号下,Eclipse 仍然显示旧的 android-ndk-r9 路径。
Eclipse 考虑路径 built-in,取消选中 Show built-in values 复选框会使所有路径消失。此外,编辑... 按钮是灰色的。
我搜索了以下目录,但找不到字符串 "android-ndk-r9":
- 我的 Eclipse 工作区
~/.eclipse
- 项目目录
~/Library
/Application/Eclipse
/etc
在 OS X 机器上
/Library
在 OS X 机器上
项目构建良好。错误的配置只会在 问题选项卡 的列表中造成数百个错误。 (复制需要打开C或C++文件):
设置来自哪里?我该如何更改它?
这似乎是相关的:How to remove auto-discovered paths after compiling on Linux from Eclipse CDT project?. But I can't find Discovery Options → Clear discovery entries now (it appears to be a Eclipse 3.x feature). Ditto for Eclipse CDT Invalid Project Path。
这似乎是涵盖该问题的 Eclipse 错误报告:Include path discovery doesn't discard obsolete paths on compiler upgrade。
Where is the setting coming from?
信息似乎保存在项目的 pathInfo
文件中。下面,该项目是一个名为 AndroidPrng 的示例 JNI 项目。
$ cat /Users/jww/Eclipse/.metadata/.plugins/com.android.ide.eclipse.ndk/AndroidPrng.pathInfo
t,1421045575000
i,/opt/android-ndk-r9/sources/cxx-stl/stlport/stlport
i,/usr/local/cryptopp/android-armeabi/include
i,/opt/android-ndk-r9/sources/cxx-stl/system/include
i,/usr/local/cryptopp/android-armeabi/include/cryptopp
i,jni
i,/opt/android-ndk-r9/platforms/android-14/arch-arm/usr/include
i,/usr/local/cryptopp/android-x86/include
i,/usr/local/cryptopp/android-x86/include/cryptopp
i,/opt/android-ndk-r9/platforms/android-14/arch-x86/usr/include
i,/usr/local/cryptopp/android-mips/include
i,/usr/local/cryptopp/android-mips/include/cryptopp
i,/usr/local/cryptopp/android-armeabi-v7a/include
i,/usr/local/cryptopp/android-armeabi-v7a/include/cryptopp
i,/opt/android-ndk-r9/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.6/include
i,/opt/android-ndk-r9/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.6/include-fixed
i,/opt/android-ndk-r9/platforms/android-14/arch-mips/usr/include
d,__STDC__,1
d,__INT64_MAX__,9223372036854775807LL
d,__LDBL_HAS_QUIET_NAN__,1
d,__WINT_TYPE__,unsigned int
d,__ORDER_LITTLE_ENDIAN__,1234
d,__DEC64_MAX_EXP__,385
d,__UINT_LEAST32_TYPE__,unsigned int
d,__UINT_FAST64_TYPE__,long long unsigned int
d,__GXX_WEAK__,1
...
I've grepped the following directories ... "My Eclipse workspace, ~/.eclipse, " ...
这里有两个问题。首先,该项目位于我的桌面上,而不是我的工作区目录。其次,org.eclipse.cdt.ui
下的日志文件中的 100 条条目淹没了 com.android.ide.eclipse.ndk
.
的条目 15 条条目
所以,在你 grep 之前,执行:
rm Users/jww/Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/*.log
这将产生易于管理的 grep 结果。
And how do I change it?
向左运动 reader。
您可以手动编辑;或者您可以删除它,Eclipse 将使用新的 NDK 相关路径重新创建它。
OP 可能已经想到了这一点,但在这里添加它只是为了将来参考。
Eclipse(当前)在 r10d 版本中存在问题(请参阅 中的相关讨论)。首先,如果可能,应该回滚到 Android NDK 的早期版本(例如 r10c 似乎工作得很好),然后使 Eclipse 指向新安装的 NDK 版本:Preferences -> Android -> NDK -> NDK 位置。为了让 Eclipse 接受这些更改,项目需要从工作区中删除,然后再添加回去(至少我必须这样做)。重新导入项目后,应该会看到更新的 NDK 路径:Project -> Properties -> C/C++ 常规 -> 路径和符号。重建 C/C++ 索引 (Project -> C/C++ Index -> Rebuild ) 也不会伤害:)
我最近将我的 NDK 从 android-ndk-r9 升级到 android-ndk-r10(准确地说是 r10d)。 Eclipse 是 4.4 Luna(Luna Service Release 1 (4.4.1);Build id:20140925-1800)。 Eclipse 已针对其发行版进行了全面修补。我更新了所有 Eclipse 插件(包括 ADT),因此它们已完全修补。而且我还在 .bash_profile
中更改了我的 ANDROID_NDK_ROOT
以指向新的 NDK 目录。
在 Eclipse 首选项下 → Android → NDK,Eclipse 显示新的 android-ndk-r10 路径(我必须手动设置它)。
在项目属性 → C/C++ 常规 → 路径和符号下,Eclipse 仍然显示旧的 android-ndk-r9 路径。
Eclipse 考虑路径 built-in,取消选中 Show built-in values 复选框会使所有路径消失。此外,编辑... 按钮是灰色的。
我搜索了以下目录,但找不到字符串 "android-ndk-r9":
- 我的 Eclipse 工作区
~/.eclipse
- 项目目录
~/Library
/Application/Eclipse
/etc
在 OS X 机器上/Library
在 OS X 机器上
项目构建良好。错误的配置只会在 问题选项卡 的列表中造成数百个错误。 (复制需要打开C或C++文件):
设置来自哪里?我该如何更改它?
这似乎是相关的:How to remove auto-discovered paths after compiling on Linux from Eclipse CDT project?. But I can't find Discovery Options → Clear discovery entries now (it appears to be a Eclipse 3.x feature). Ditto for Eclipse CDT Invalid Project Path。
这似乎是涵盖该问题的 Eclipse 错误报告:Include path discovery doesn't discard obsolete paths on compiler upgrade。
Where is the setting coming from?
信息似乎保存在项目的 pathInfo
文件中。下面,该项目是一个名为 AndroidPrng 的示例 JNI 项目。
$ cat /Users/jww/Eclipse/.metadata/.plugins/com.android.ide.eclipse.ndk/AndroidPrng.pathInfo
t,1421045575000
i,/opt/android-ndk-r9/sources/cxx-stl/stlport/stlport
i,/usr/local/cryptopp/android-armeabi/include
i,/opt/android-ndk-r9/sources/cxx-stl/system/include
i,/usr/local/cryptopp/android-armeabi/include/cryptopp
i,jni
i,/opt/android-ndk-r9/platforms/android-14/arch-arm/usr/include
i,/usr/local/cryptopp/android-x86/include
i,/usr/local/cryptopp/android-x86/include/cryptopp
i,/opt/android-ndk-r9/platforms/android-14/arch-x86/usr/include
i,/usr/local/cryptopp/android-mips/include
i,/usr/local/cryptopp/android-mips/include/cryptopp
i,/usr/local/cryptopp/android-armeabi-v7a/include
i,/usr/local/cryptopp/android-armeabi-v7a/include/cryptopp
i,/opt/android-ndk-r9/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.6/include
i,/opt/android-ndk-r9/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.6/include-fixed
i,/opt/android-ndk-r9/platforms/android-14/arch-mips/usr/include
d,__STDC__,1
d,__INT64_MAX__,9223372036854775807LL
d,__LDBL_HAS_QUIET_NAN__,1
d,__WINT_TYPE__,unsigned int
d,__ORDER_LITTLE_ENDIAN__,1234
d,__DEC64_MAX_EXP__,385
d,__UINT_LEAST32_TYPE__,unsigned int
d,__UINT_FAST64_TYPE__,long long unsigned int
d,__GXX_WEAK__,1
...
I've grepped the following directories ... "My Eclipse workspace, ~/.eclipse, " ...
这里有两个问题。首先,该项目位于我的桌面上,而不是我的工作区目录。其次,org.eclipse.cdt.ui
下的日志文件中的 100 条条目淹没了 com.android.ide.eclipse.ndk
.
所以,在你 grep 之前,执行:
rm Users/jww/Eclipse/.metadata/.plugins/org.eclipse.cdt.ui/*.log
这将产生易于管理的 grep 结果。
And how do I change it?
向左运动 reader。
您可以手动编辑;或者您可以删除它,Eclipse 将使用新的 NDK 相关路径重新创建它。
OP 可能已经想到了这一点,但在这里添加它只是为了将来参考。
Eclipse(当前)在 r10d 版本中存在问题(请参阅 中的相关讨论)。首先,如果可能,应该回滚到 Android NDK 的早期版本(例如 r10c 似乎工作得很好),然后使 Eclipse 指向新安装的 NDK 版本:Preferences -> Android -> NDK -> NDK 位置。为了让 Eclipse 接受这些更改,项目需要从工作区中删除,然后再添加回去(至少我必须这样做)。重新导入项目后,应该会看到更新的 NDK 路径:Project -> Properties -> C/C++ 常规 -> 路径和符号。重建 C/C++ 索引 (Project -> C/C++ Index -> Rebuild ) 也不会伤害:)