LINKER_TYPE¶
在版本 3.29 中添加。
指定链接步骤将使用的链接器。属性值可以使用生成器 表达式
。
注意
假定指定的链接器与编译器通常调用的默认链接器完全兼容。CMake 不会进行任何选项转换。
链接器类型区分大小写,并且只能包含字母、数字和下划线。全大写定义的链接器类型保留用于 CMake 自己的内置类型。预定义的链接器类型为
DEFAULT
此类型对应于标准链接,实质上等同于未设置
LINKER_TYPE
目标属性。SYSTEM
使用平台或工具链提供的标准链接器。例如,这意味着所有 MSVC 兼容编译器都使用 Microsoft 链接器。此类型支持以下平台-编译器组合:
Linux:
GNU
、Clang
、LLVMFlang
、NVIDIA
和Swift
编译器。Apple 平台:
AppleClang
、Clang
、GNU
和Swift
编译器。Windows:
MSVC
、GNU
、Clang
、NVIDIA
和Swift
编译器。
LLD
使用
LLVM
链接器。此类型支持以下平台-编译器组合:Linux:
GNU
、Clang
、LLVMFlang
、NVIDIA
和Swift
编译器。Apple 平台:
Clang
、AppleClang
和Swift
编译器。Windows:
GNU
、具有 MSVC 类似前端的Clang
、具有 GNU 类似前端的Clang
、MSVC
、具有 MSVC 类似前端的NVIDIA
和Swift
。
BFD
使用
GNU
链接器。此类型支持以下平台-编译器组合:Linux:
GNU
、Clang
、LLVMFlang
和NVIDIA
编译器。Windows:
GNU
、具有 GNU 类似前端的Clang
。
GOLD
支持在 Linux 平台上使用
GNU
、Clang
、LLVMFlang
、NVIDIA
和Swift
编译器。MOLD
使用 mold 链接器。此类型支持以下平台-编译器组合:
Linux:
GNU
、Clang
、LLVMFlang
和NVIDIA
编译器。Apple 平台:
Clang
和AppleClang
编译器(作为 sold 链接器的别名)。
SOLD
使用 sold 链接器。此类型仅在 Apple 平台上支持
Clang
和AppleClang
编译器。APPLE_CLASSIC
使用经典行为的 Apple 链接器(即
Xcode 15.0
之前)。此类型仅在 Apple 平台上支持GNU
、Clang
、AppleClang
和Swift
编译器。MSVC
使用 Microsoft 链接器。此类型仅在 Windows 平台上支持
MSVC
、具有 MSVC 类似前端的Clang
和Swift
编译器。
此属性在 Green Hills MULTI
生成器上不支持。
所选链接器的实现细节将由 CMAKE_<LANG>_USING_LINKER_<TYPE>
变量提供。例如
add_library(lib1 SHARED ...)
set_property(TARGET lib1 PROPERTY LINKER_TYPE LLD)
这指定 lib1
在链接步骤中应使用链接器类型 LLD
。将传递给工具链的命令行选项将由 CMAKE_<LANG>_USING_LINKER_LLD
变量提供。
请注意,链接器通常会使用 CMAKE_LINKER_TYPE
为整个构建设置,而不是在单个目标上设置 LINKER_TYPE
属性。