告诉CMake使用LLVM链接器llvm-link
而不是GNU ld
作为链接器的最佳方法是什么?在配置项目时
CXX=clang++ cmake <args>
默认链接器似乎保持不变,其余为
usr/bin/ld
(在Linux上)。如果没有using a separate toolchain file,这可能吗?
最佳答案
事实证明这与CMake无关:clang++
默认情况下使用系统链接器。例如,
echo "#include <atomic>\n int main() { return 0; }" \
| clang++ -x c++ -std=c++11 -stdlib=libc++ -
使用
/usr/bin/ld
链接应用程序。要将链接器更改为llvm-link
,首先需要发出LLVM字节码,然后调用该链接器,例如:echo "#include <atomic>\n int main() { return 0; }" \
| clang++ -x c++ -std=c++11 -stdlib=libc++ -S -emit-llvm -o - - \
| llvm-link -o binary -
这会绕过
/usr/bin/ld
。
关于linker - 使用Clang和CMake时使用LLVM链接器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10286850/