包含Clang / LLVM的C ++ 11头文件

时间:2012-04-06 18:00:48

标签: c++ build c++11 llvm clang

我从源代码安装了clang和llvm,并尝试使用新标准的功能编译一些C ++代码。

我发现虽然例如使用范围,例如for (i : vector)工作正常,当我需要导入标题时遇到问题(无法找到标题文件),例如<unordered_set><tuple>

我是否需要使用新的libc ++来使用这些头文件,还是只需要进行简单的构建更改?目前我刚刚将clang和llvm构建到我的主目录中的一个文件夹中,并从那里调用clang ++。

2 个答案:

答案 0 :(得分:11)

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

  

如果您打算使用Clang C ++支持,您可能需要告诉它如何找到您的C ++标准库头。如果Clang找不到您的系统libstdc ++标头,请按照以下说明操作:

     
      
  • gcc -v -x c ++ / dev / null -fsyntax-only 以获取路径。

  •   
  • clang / lib / Frontend / InitHeaderSearch.cpp 中查找“FIXME:临时黑客:硬编码路径”的注释并更改以下行包括那条道路。

  •   

答案 1 :(得分:4)

虽然标准库附带了编译器的发行版,但是当您自己构建它时,仍然需要自己构建标准库。它的一些组件可能只是标题,但并非所有组件都是。

所以你确实需要至少下载这个库,如果没有它的话。 Clang可以使用GCC的libstdc ++,但他们也有自己的libc ++项目。