CMAKE_LINKER_TYPE

在版本 3.29 中添加。

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

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

注意

假定指定的链接器与编译器通常调用的默认链接器完全兼容。CMake 不会进行任何选项翻译。

链接器类型区分大小写,并且只能包含字母、数字和下划线。所有大写字母定义的链接器类型保留给 CMake 自身的内置类型。预定义的链接器类型为:

DEFAULT

此类型对应于标准链接,基本上等同于根本未设置 LINKER_TYPE 目标属性。

SYSTEM

使用平台或工具链提供的标准链接器。例如,这对于所有与 MSVC 兼容的编译器意味着使用 Microsoft 链接器。此类型支持以下平台-编译器组合:

  • Linux:GNUClangLLVMFlangNVIDIASwift 编译器。

  • Apple 平台:AppleClangClangGNUSwift 编译器。

  • Windows:MSVCGNUClangNVIDIASwift 编译器。

LLD

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

  • Linux:GNUClangLLVMFlangNVIDIASwift 编译器。

  • Apple 平台:ClangAppleClangSwift 编译器。

  • Windows:GNU、带有 MSVC 类前端的 Clang、带有 GNU 类前端的 ClangMSVC、带有 MSVC 类前端的 NVIDIASwift

BFD

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

  • Linux:GNUClangLLVMFlangNVIDIA 编译器。

  • Windows:GNU、带有 GNU 类前端的 Clang

GOLD

支持在 Linux 平台使用 GNUClangLLVMFlangNVIDIASwift 编译器。

MOLD

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

  • Linux:GNUClangLLVMFlangNVIDIA 编译器。

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

SOLD

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

APPLE_CLASSIC

使用 Apple 链接器的经典行为(即 Xcode 15.0 之前的行为)。此类型仅在 Apple 平台使用 GNUClangAppleClangSwift 编译器时受支持。

MSVC

使用 Microsoft 链接器。此类型仅在 Windows 平台使用 MSVC、带有 MSVC 类前端的 ClangSwift 编译器时受支持。