Clang++ 和 `-fuse-ld=gold` 导致许多未使用的选项警告
Clang++ and `-fuse-ld=gold` results in many unused option warnings
我正在尝试在 CMake
项目中将 gold
链接器与 clang++
一起使用。如果我只是做
add_definitions(-fuse-ld=gold)
我收到大量警告,形式如下:
clang: warning: argument unused during compilation: '-fuse-ld=gold'
- 这个选项真的有效吗?
- 我应该将它添加到我的
CMake
脚本的什么位置,以避免到处都是警告?
由于该选项适用于 link 阶段,因此将其添加到 linker flags,而不是 compiler 个。例如,您可以设置变量 CMAKE_EXE_LINKER_FLAGS:
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=gold")
请注意,CMake 将 linker 相关的变量分离为不同的输出类型。变量 CMAKE_EXE_LINKER_FLAGS
仅影响 linking 可执行文件 (add_executable()
)。对于库,使用适当的 CMAKE_*_LINKER_FLAGS
变量:
- CMAKE_STATIC_LINKER_FLAGS - 对于 STATIC 库
- CMAKE_SHARED_LINKER_FLAGS - 对于 SHARED 库
- CMAKE_MODULE_LINKER_FLAGS - 对于 MODULEs.
我正在尝试在 CMake
项目中将 gold
链接器与 clang++
一起使用。如果我只是做
add_definitions(-fuse-ld=gold)
我收到大量警告,形式如下:
clang: warning: argument unused during compilation: '-fuse-ld=gold'
- 这个选项真的有效吗?
- 我应该将它添加到我的
CMake
脚本的什么位置,以避免到处都是警告?
由于该选项适用于 link 阶段,因此将其添加到 linker flags,而不是 compiler 个。例如,您可以设置变量 CMAKE_EXE_LINKER_FLAGS:
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=gold")
请注意,CMake 将 linker 相关的变量分离为不同的输出类型。变量 CMAKE_EXE_LINKER_FLAGS
仅影响 linking 可执行文件 (add_executable()
)。对于库,使用适当的 CMAKE_*_LINKER_FLAGS
变量:
- CMAKE_STATIC_LINKER_FLAGS - 对于 STATIC 库
- CMAKE_SHARED_LINKER_FLAGS - 对于 SHARED 库
- CMAKE_MODULE_LINKER_FLAGS - 对于 MODULEs.