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

zen*_*nna 8 c++ build llvm clang c++11

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

我发现虽然例如使用for range例如for (i : vector)工作正常,但是当我需要导入标题时,我遇到了麻烦(找不到头文件),例如<unordered_set><tuple>.

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

Joh*_*itb 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:temporary hack:hard-coded paths",并更改下面的行以包含该路径.


Nic*_*las 4

虽然标准库随编译器的发行版一起提供,但当您自己构建它时,您仍然需要构建标准库本身。它的某些组件可能只是标头,但并非全部都是。

因此,如果不需要构建它,您至少需要下载该库。Clang 可以使用 GCC 的 libstdc++,但他们也有自己的 libc++ 项目。