CMAKE_LINKER_TYPE

在 3.29 版本中添加。

指定链接步骤将使用的链接器。

此变量用于初始化通过调用 LINKER_TYPE 属性在每次调用 add_library()add_executable() 创建的每个目标上。它仅对具有链接步骤的目标有意义。如果设置,它的值也会被 try_compile() 命令使用。

注意

假定指定的链接器与编译器通常会调用的默认链接器完全兼容。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, Clang 与 MSVC 类似的前端, Clang 与 GNU 类似的前端, MSVC, NVIDIA 与 MSVC 类似的前端, 和 Swift

BFD

使用 GNU 链接器。以下平台-编译器组合支持此类型

  • Linux: GNU, Clang, LLVMFlang, 和 NVIDIA 编译器。

  • Windows: GNU, Clang 与 GNU 类似的前端。

GOLD

在 Linux 平台上使用 GNU, Clang, LLVMFlang, NVIDIA, 和 Swift 编译器时受支持。

MOLD

使用 mold 链接器。以下平台-编译器组合支持此类型

  • Linux: GNU, Clang, LLVMFlang, 和 NVIDIA 编译器。

  • Apple 平台: ClangAppleClang 编译器 (充当 sold 链接器 的别名)。

SOLD

使用 sold 链接器。此类型仅在 Apple 平台上使用 ClangAppleClang 编译器时受支持。

APPLE_CLASSIC

以经典行为(即在 Xcode 15.0 之前)使用 Apple 链接器。此类型仅在 Apple 平台上使用 GNU, Clang, AppleClang, 和 Swift 编译器时受支持。

MSVC

使用 Microsoft 链接器。此类型仅在 Windows 平台上使用 MSVC, Clang 与 MSVC 类似的前端, 和 Swift 编译器时受支持。