2014-09-26 95 views
0

我想建立所有的烏鴉庫鐺3.6的例子,我可以看到CC/CXX已正確使用鐺3.6中。它使用我不太熟悉的cmake。鏘:無法找到C++ 11頭

但它未能找到C++ 11頭文件。

錯誤是這樣的:

'future' file not found

看來,的libstdC++中未正確指定,或者有些人估計它需要建立鐺的libstdC++自己。

任何人都可以對此有所瞭解,將不勝感激。

+2

請確保您使用C++ 11層的功能與鏘: http://stackoverflow.com/questions/10408849/how-can-i-use-c-11-features-in-clang – 2014-09-26 06:45:25

+0

鏘應該提供ABI兼容性已經有了libstdC++,所以你不需要爲clang構建一個特殊的版本。您可能需要鏈接到特定的abi支持庫(libsupC++與libC++ abi),或者您可能需要將libstdC++更新爲支持C++ 11的版本,或者將libC++與-stdlib = libC++一起使用。 – bames53 2014-09-26 07:06:07

+0

@CiprianKhlud,實際上我並打開它在cmake的: 集(CMAKE_CXX_FLAGS 「$ {CMAKE_CXX_FLAGS} -Wall -std = C++ 11 -stdlib = ++的libstdc」) – rzhomx 2014-09-26 11:50:32

回答

0

因此,基於前面的評論的問題是,你不能夠在Clang的C++的11模式。

referenced question,這個問題很簡單,你不給鏘(或在未來GCC)說去找C++頭。

「鏘的命令行是gcc兼容,所以你必須使通過followinf命令行開關C++ 11的支持」

-std=c++11 

如果之後你所有你需要做的就是寫你C++ 11代碼。如果您使用Makefiles,則應將您的CXX參數添加到命令行切換到Clang。

+0

我實際做打開它如下: 集(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

+0

您是否嘗試單獨編譯文件?並使用鏗鏘++(或g ++,如果你想)只是爲了看看它是否找到這個頭? (我希望找到它) – 2014-09-26 13:58:47

+0

它未能找到unordered_map文件時,我在此建方式: 在/ usr/local/bin目錄/鐺++ -Wall -std = C++ 11 -stdlib = ++的libstdc excample.cpp – rzhomx 2014-09-30 02:51:10