2012-04-06 89 views
8

我已經從源碼安裝了clang和llvm,並且正在嘗試使用新標準的特性來編譯一些C++代碼。包括鏗鏘聲/ LLVM的C++ 11頭文件

我發現雖然例如使用範圍例如for (i : vector)工作正常,當我需要導入一個頭時,我遇到了麻煩(無法找到頭文件) <unordered_set><tuple>

我是否需要使用新的libC++來使用這些頭文件,還是僅僅需要進行簡單的構建更改?此刻,我剛剛將clang和llvm構建到了我的主目錄中的一個文件夾中,並從那裏調用了clang ++。

回答

4

雖然標準庫自帶的編譯器的分佈,當你自己構建它,你仍然需要建立標準庫本身。它的一些組件可能只是標題,但並非全部都是。

所以你至少需要下載庫,如果沒有構建它。 Clang可以使用GCC的libstdC++,但他們也有他們的libC++項目。

11

參見http://clang.llvm.org/get_started.html

如果您打算使用Clang C++支持,您可能需要告訴它如何找到您的C++標準庫標頭。如果鏘無法找到你的系統的libstdC++頭文件,請按照下列指示:

  • -v的gcc -x C++的/ dev/null的-fsyntax只得到的路徑。

  • 查找註釋「FIXME:臨時黑客:硬編碼路徑」鐺/ lib目錄/前端/ InitHeaderSearch.cpp並更改以下行包括路徑。

+0

好的,但它似乎只是來自新標準頭的問題。 – zenna 2012-04-07 00:43:58

+0

啊哈,這可能是因爲我的g ++ 4.6在非標準的地方 – zenna 2012-04-07 00:45:42