有沒有人得到如何讓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