我想建立所有的烏鴉庫鐺3.6的例子,我可以看到CC/CXX已正確使用鐺3.6中。它使用我不太熟悉的cmake。鏘:無法找到C++ 11頭
但它未能找到C++ 11頭文件。
錯誤是這樣的:
'future' file not found
看來,的libstdC++中未正確指定,或者有些人估計它需要建立鐺的libstdC++自己。
任何人都可以對此有所瞭解,將不勝感激。
我想建立所有的烏鴉庫鐺3.6的例子,我可以看到CC/CXX已正確使用鐺3.6中。它使用我不太熟悉的cmake。鏘:無法找到C++ 11頭
但它未能找到C++ 11頭文件。
錯誤是這樣的:
'future' file not found
看來,的libstdC++中未正確指定,或者有些人估計它需要建立鐺的libstdC++自己。
任何人都可以對此有所瞭解,將不勝感激。
因此,基於前面的評論的問題是,你不能夠在Clang的C++的11模式。
如referenced question,這個問題很簡單,你不給鏘(或在未來GCC)說去找C++頭。
「鏘的命令行是gcc兼容,所以你必須使通過followinf命令行開關C++ 11的支持」
-std=c++11
如果之後你所有你需要做的就是寫你C++ 11代碼。如果您使用Makefiles,則應將您的CXX參數添加到命令行切換到Clang。
我實際做打開它如下: 集(CMAKE_CXX_FLAGS 「$ {CMAKE_CXX_FLAGS} -Wall -std = C++ 11 -stdlib = ++的libstdc」) 我擔心的是鐺嘗試使用系統默認的C++頭/庫這不是我安裝了gcc 4.8。有些人說我需要用--with-gcc-toolchain重建clang來告訴我在哪裏可以找到我的gcc 4.8。但我試圖避免重建clang。 – rzhomx 2014-09-26 11:51:29
您是否嘗試單獨編譯文件?並使用鏗鏘++(或g ++,如果你想)只是爲了看看它是否找到這個頭? (我希望找到它) – 2014-09-26 13:58:47
它未能找到unordered_map文件時,我在此建方式: 在/ usr/local/bin目錄/鐺++ -Wall -std = C++ 11 -stdlib = ++的libstdc excample.cpp – rzhomx 2014-09-30 02:51:10
請確保您使用C++ 11層的功能與鏘: http://stackoverflow.com/questions/10408849/how-can-i-use-c-11-features-in-clang – 2014-09-26 06:45:25
鏘應該提供ABI兼容性已經有了libstdC++,所以你不需要爲clang構建一個特殊的版本。您可能需要鏈接到特定的abi支持庫(libsupC++與libC++ abi),或者您可能需要將libstdC++更新爲支持C++ 11的版本,或者將libC++與-stdlib = libC++一起使用。 – bames53 2014-09-26 07:06:07
@CiprianKhlud,實際上我並打開它在cmake的: 集(CMAKE_CXX_FLAGS 「$ {CMAKE_CXX_FLAGS} -Wall -std = C++ 11 -stdlib = ++的libstdc」) – rzhomx 2014-09-26 11:50:32