CMAKE_LINKER_TYPE

在 3.29 版本中添加。

指定用于链接步骤的链接器。

该变量用于在 LINKER_TYPE 实现初始化 LINKER_TYPE 属性,通过调用 add_library() 或者 add_executable() 而创建每个目标。它对具有链接步骤的目标才有意义。如果设置,其值还将被 try_compile() 命令使用。

注意

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

链接器类型区分大小写,而且只能包含字母、数字和下划线。全部大写定义的链接器类型保留用于 CMake 自己的内置类型。预定义的链接器类型为

DEFAULT

此类型对应标准链接,基本相当于完全没有设置 LINKER_TYPE 目标属性。

SYSTEM

使用平台或工具链提供的标准链接器。例如,这暗示所有 MSVC 兼容编译器的 Microsoft 链接器。此类型支持以下平台编译器组合

  • Linux:GNUClangLLVMFlangNVIDIASwift 编译器。

  • Apple 平台:AppleClangClangGNUSwift 编译器。

  • Windows:MSVCGNUClangNVIDIASwift 编译器。

LLD

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

  • Linux:GNUClangLLVMFlangNVIDIASwift 编译器。

  • Apple 平台:ClangAppleClangSwift 编译器。

  • Windows:GNUClang(带有 MSVC 类似前端)、Clang(带有 GNU 类似前端)、MSVCNVIDIA(带有 MSVC 类似前端)以及 Swift

BFD

使用 GNU 链接器。此类型受支持的平台编译器组合如下

  • Linux:GNUClangLLVMFlangNVIDIA 编译器

  • Windows:GNUClang,带有类 GNU 的前端

GOLD

在 Linux 平台中受支持,带有 GNUClangLLVMFlangNVIDIASwift 编译器

MOLD

使用 mold 链接器。此类型受支持的平台编译器组合如下

  • Linux:GNUClangLLVMFlangNVIDIA 编译器

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

SOLD

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

APPLE_CLASSIC

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

MSVC

使用 Microsoft 链接器。此类型仅受支持在装有 MSVCClang (带有类 MSVC 的前端)和 Swift 编译器的 Windows 平台上使用。