【发布时间】:2013-10-24 09:09:43
【问题描述】:
我正在使用带有 SublimeClang 的 Sublime Text 2。升级到 Mavericks / Xcode 5 后,SublimeClang 停止工作。调用命令行clang的静态分析器仍然可以正常工作,但后台诊断一直抱怨找不到iostream。
【问题讨论】:
标签: xcode sublimetext2 osx-mavericks
我正在使用带有 SublimeClang 的 Sublime Text 2。升级到 Mavericks / Xcode 5 后,SublimeClang 停止工作。调用命令行clang的静态分析器仍然可以正常工作,但后台诊断一直抱怨找不到iostream。
【问题讨论】:
标签: xcode sublimetext2 osx-mavericks
我有同样的问题。我最终通过重新安装 Xcode 命令行工具解决了这个问题。
我在终端中运行了这个命令:
xcode-select --install
在那之后,SublimeClang 似乎又可以工作了。
【讨论】:
Apple 似乎在 Xcode 5 中更新了clang,并且他们还取消了/usr/include 路径。由于某种神秘的原因,Xcode 5 中的新 libclang.dylib 无法识别默认包含路径;它仍然会尝试在/usr/include 和usr/include/c++ 中搜索系统标头。
在检查cpp -v 后,我发现这些包含路径应该在调用clang_parseTranslationUnit 时包含在参数列表中:
-I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/
-I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/c++/v1
-I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/5.0/include
-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include
我不能将这些参数放在SublimeClang.sublime-settings 的“选项”部分,因为它会被每个项目的sublimeclang_options 覆盖。所以我在additional_language_options 部分添加了这些。
现在 SublimeClang 终于可以工作了,虽然不是一个理想的解决方案。谁有更好的解决方案?
【讨论】: