我正在尝试将链接器更改为ld.gold,以便可以构建LLVM和
更快地刷新。我用以下方法更改了环境变量:

export LD=ld.gold

并且我已将ccmake中的CMAKE_LINKER更改为/usr/bin/ld.gold。然而,
当我生成文件时,我的链接器被检测为GNU ld。运行上衣
在编译期间确认ld正在运行,而不是在运行。

当将CMake Link Executable变量编辑为:
cmake -DCMAKE_LINKER=/usr/bin/ld.gold -DCMAKE_CXX_LINK_EXECUTABLE="<CMAKE_LINKER> <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>" -G "Unix Makefiles" ../llvm

我收到以下错误:
/usr/bin/ld.gold: -Werror=date-time: unknown option
/usr/bin/ld.gold: use the --help option for usage information
utils/PerfectShuffle/CMakeFiles/llvm-PerfectShuffle.dir/build.make:94: recipe for target 'bin/llvm-PerfectShuffle' failed
make[2]: *** [bin/llvm-PerfectShuffle] Error 1
CMakeFiles/Makefile2:13983: recipe for target 'utils/PerfectShuffle/CMakeFiles/llvm-PerfectShuffle.dir/all' failed

我在Ubuntu 16.04上,但是在Arch Linux上也遇到了同样的问题。

谢谢你。

最佳答案

CMAKE_EXE_LINKER_FLAGS=-fuse-ld=gold-fuse-ld=gold传递给编译器,编译器将正确使用gold链接程序。

关于c++ - 无法更改CMake中的默认链接器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45443250/

10-09 08:54