有没有人得到如何让C + + 11在OS X山狮下使用SublimeClang的说明。SublimeClang OSX Mountain Lion C++ 11
如果我使用非C++ 11 libs和代码它很高兴,但只要我尝试使用像std :: shared_ptr这样的东西它呻吟。
我明显错过了简单的东西,任何帮助将不胜感激。
我已经为-std = C++ 11设置了额外的选项,所以我真的不知道我在想什么。
布莱尔
有没有人得到如何让C + + 11在OS X山狮下使用SublimeClang的说明。SublimeClang OSX Mountain Lion C++ 11
如果我使用非C++ 11 libs和代码它很高兴,但只要我尝试使用像std :: shared_ptr这样的东西它呻吟。
我明显错过了简单的东西,任何帮助将不胜感激。
我已经为-std = C++ 11设置了额外的选项,所以我真的不知道我在想什么。
布莱尔
在OS X 10.9小牛以下配置为我工作:在命令行上
获取与OS X中的工作编辑提供clang++
。附加-v
命令行选项以获取它使用的系统包含目录的列表。对我来说,这些是: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/5.0/include /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include
SublimeClang默认添加它自己的包含文件,这在我的系统上已经过时了。设置此偏好SublimeClang:"dont_prepend_clang_includes": true
"additional_language_options":{"c++": ["--std=c++11"]}
它可能为时已晚,但我发现如何做到这一点。 这个问题是因为铿锵声使用gcc-4.2的头文件,这是相当古老的,不支持C++ 11。
要完成C++ 11代码,您必须获得更新的gcc并复制它使用的包含路径。 如果你有自制软件,开放终端和类型
brew tap homebrew/versions
brew install gcc48
可以安装GCC-4.8和新的libstdC++与这两条线。现在,创建一些C++文件并尝试使用带有-v选项的g ++ - 4.8。
g++-4.8 -v example.cpp
-v选项告诉gcc显示详细日志。在输出中,应该有这样的一些行。
#include <...> search starts here:
/usr/local/Cellar/gcc48/4.8.1/gcc/lib/gcc/x86_64-apple-darwin12.4.1/4.8.1/../../../../include/c++/4.8.1
/usr/local/Cellar/gcc48/4.8.1/gcc/lib/gcc/x86_64-apple-darwin12.4.1/4.8.1/../../../../include/c++/4.8.1/x86_64-apple-darwin12.4.1
/usr/local/Cellar/gcc48/4.8.1/gcc/lib/gcc/x86_64-apple-darwin12.4.1/4.8.1/../../../../include/c++/4.8.1/backward
/usr/local/Cellar/gcc48/4.8.1/gcc/lib/gcc/x86_64-apple-darwin12.4.1/4.8.1/include
/usr/local/include
/usr/local/Cellar/gcc48/4.8.1/gcc/include
/usr/local/Cellar/gcc48/4.8.1/gcc/lib/gcc/x86_64-apple-darwin12.4.1/4.8.1/include-fixed
/usr/include
/System/Library/Frameworks
/Library/Frameworks
End of search list.
这些路径是gcc4.8用来查找标题的。打开SublimeClang.sublime-settings - User,并将这些路径和“-std = C++ 11”像这样。
{
"options":[
"-I/usr/local/Cellar/gcc48/4.8.1/gcc/lib/gcc/x86_64-apple-darwin12.4.1/4.8.1/../../../../include/c++/4.8.1",
"-I/usr/local/Cellar/gcc48/4.8.1/gcc/lib/gcc/x86_64-apple-darwin12.4.1/4.8.1/../../../../include/c++/4.8.1/x86_64-apple-darwin12.4.1",
"-I/usr/local/Cellar/gcc48/4.8.1/gcc/lib/gcc/x86_64-apple-darwin12.4.1/4.8.1/../../../../include/c++/4.8.1/backward",
"-I/usr/local/Cellar/gcc48/4.8.1/gcc/lib/gcc/x86_64-apple-darwin12.4.1/4.8.1/include",
"-I/usr/local/include",
"-I/usr/local/Cellar/gcc48/4.8.1/gcc/include",
"-I/usr/local/Cellar/gcc48/4.8.1/gcc/lib/gcc/x86_64-apple-darwin12.4.1/4.8.1/include-fixed",
"-I/usr/include",
"-I/System/Library/Frameworks",
"-I/Library/Frameworks"
],
"additional_language_options":
{
"c++" :[
"-std=c++11"
],
"c": [],
"objc": [],
"objc++": []
}
}
我可以这样做。
如果你不使用自制软件,它将不会如此不同。
我更新了XCode并将它更新为版本6.0(LLVM 3.5svn)。现在SublimeClang坏了。问题是/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault。xctoolchain/usr/lib/C++/v1不存在了!这意味着任何标准库都消失了。 – Xplane