将完整的 Clang、libc++ 和 LLVM 设置为默认全局工具链的最简单方法是什么?我尝试构建它的所有方法(在我能想到的大多数配置中)都使 Clang 可以运行,但它没有使用 libc++ 标头,而是默认的 GCC 的 libstd++ 标头,导致不兼容的库代码中出现大量错误。
我希望它开箱即用,而不必做任何魔法或.bashrc
将所有这些传递给编译器和链接器。-stdlib=libc++
-lc++
答案1
从 LLVM 和 Clang 如何集成到 FreeBSD 基础来看,我认为您需要破解 Clang 的内部结构来lib/Frontend/InitHeaderSearch.cpp
为您的系统设置库和头路径()。
默认使用 libc++ 肯定需要更改代码(greplib/Frontend/CompilerInvocation.cpp
查找“UseLibcxx”)。您可能还需要破解系统链接器才能更改-lstdc++
为-lc++
。
就我个人而言,我建议你只需设置 CC、CXX、CFLAGS、CXXFLAGS 和其他变量即可轻松实现相同结果。它在 FreeBSD 上对我来说运行完美。