我从源代码安装了clang和llvm,并尝试使用新标准的功能编译一些C ++代码。
我发现虽然例如使用范围,例如for (i : vector)
工作正常,当我需要导入标题时遇到问题(无法找到标题文件),例如<unordered_set>
或<tuple>
。
我是否需要使用新的libc ++来使用这些头文件,还是只需要进行简单的构建更改?目前我刚刚将clang和llvm构建到我的主目录中的一个文件夹中,并从那里调用clang ++。
答案 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 ++项目。