Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 无法更改CMake中的默认链接器_C++_Linux_Cmake_Linker_Clang - Fatal编程技术网

C++ 无法更改CMake中的默认链接器

C++ 无法更改CMake中的默认链接器,c++,linux,cmake,linker,clang,C++,Linux,Cmake,Linker,Clang,我正在尝试将我的链接器更改为ld.gold,以便可以构建LLVM和 叮当声更快。我已使用以下命令更改了环境变量: export LD=ld.gold 我已经将ccmake中的CMAKE_链接器更改为/usr/bin/ld.gold。然而, 当我生成文件时,我的链接器被检测为GNU ld。运动上衣 在编译过程中,确认运行的是ld而不是gold 编辑CMake链接可执行变量时,请执行以下操作: cmake -DCMAKE_LINKER=/usr/bin/ld.gold -DCMAKE_CXX_LI

我正在尝试将我的链接器更改为ld.gold,以便可以构建LLVM和 叮当声更快。我已使用以下命令更改了环境变量:

export LD=ld.gold
我已经将ccmake中的CMAKE_链接器更改为/usr/bin/ld.gold。然而, 当我生成文件时,我的链接器被检测为GNU ld。运动上衣 在编译过程中,确认运行的是ld而不是gold

编辑CMake链接可执行变量时,请执行以下操作:

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
我使用的是Ubuntu 16.04,但在Arch Linux上也有同样的问题


谢谢。

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

设置CMAKE_链接器变量无效的I specifid的可能重复,这是该问题的解决方案。它是
CMAKE{C,CXX}_LINK\u EXECUTABLE
。仔细阅读:除了
CMAKE\u LINKER
之外,它还指定了
CMAKE\u CXX\u LINK\u EXECUTABLE
变量。因此您的链接器不支持选项
-Werror=date-time
。因为这实际上是一个编译器选项,所以您可以尝试从
CMAKE\u CXX\u LINK\u可执行文件
定义中删除
/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