包括C++ 11 个带有 Clang / LLVM 的标头
Including C++ 11 headers with Clang / LLVM
我已经从源代码安装了clang和llvm,并尝试使用新标准的功能编译一些C++代码。
我发现,例如使用 for 范围,例如 for (i : vector)
工作正常,当我需要导入标题时遇到问题(找不到头文件),例如 <unordered_set>
或<tuple>
.
我是否需要使用新的libc ++来使用这些标头,或者只需要进行简单的构建更改? 目前,我刚刚将clang和llvm构建到我的主目录中的一个文件夹中,并从那里调用clang++。
请参阅 http://clang.llvm.org/get_started.html。
如果您打算使用 Clang C++ 支持,您可能需要告诉它如何查找C++标准库标头。如果 Clang 找不到您的系统 libstdc++ 标头,请按照以下说明操作:
gcc -v -x c++/dev/null -fsyntax-only 来获取路径。
在 clang/lib/Frontend/InitHeaderSearch 中查找注释"FIXME:临时黑客:硬编码路径".cpp并更改下面的行以包含该路径。
虽然标准库附带了编译器的发行版,但当您自己构建它时,您仍然需要构建标准库本身。它的某些组件可能仅是标头,但并非所有组件都是。
因此,您至少需要下载库,如果不构建它。Clang可以使用GCC的libstdc++,但他们也有自己的libc++项目。
相关文章:
- 如何将 compile_commands.json 与 llvm clang (版本 7.0.1) python 绑定一
- 强制 Clang 在 Linux 中使用 llvm 而不是 GCC
- Windows 上的 Clang/LLVM 7 和 8 多次初始化内联静态数据成员(使用 link.exe 和 lld-
- [LLVM-9 clang-9 OSX]: std::filesystem::path unrecognized
- LLVM Clang C 代码注入
- C++ 异常绕过 clang/llvm 上的捕获
- 与OpenMP相关的错误,以及使用OpenMP构建LLVM / Clang时C++
- LLVM & Clang 无法针对支持的架构进行编译
- llvm/clang自身重新编译
- 为什么在Visual Studio中使用LLVM+Clang时没有定义__clang__?
- SFINAE 不在 llvm/clang 上工作
- 我的 LLVM & clang (OSX) 版本是什么?
- LLVM clang编译器优化器以一种非常奇怪的方式重新排列代码,该怎么做
- LLVM Clang在OS X上产生非常慢的输入/输出
- 编译 llvm/clang 时出现致命错误 - 找不到'cstddef'文件
- 使用LLVM-Clang隐式实例化私有c++模板时的链接器错误
- LLVM Clang 5.0显式在复制初始化错误
- 通过LLVM/Clang实现c++与MyLanguage的转换
- C++: 'CHttpConnection' & 'CInternetSession' OS X / LLVM Clang equivalent?
- 构建LLVM/clang时出错