LINKER_TYPE¶
在版本 3.29 中新增。
指定連結步驟將使用的連結器。屬性值可以使用 generator expressions
。
注意
假設指定的連結器與編譯器通常會調用的預設連結器完全相容。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
在具有
GNU
、Clang
、LLVMFlang
、NVIDIA
和Swift
編譯器的 Linux 平台上支援。MOLD
使用 mold linker。此類型支援以下平台-編譯器組合
Linux:
GNU
、Clang
、LLVMFlang
和NVIDIA
編譯器。Apple 平台:
Clang
和AppleClang
編譯器 (作為 sold linker 的別名)。
SOLD
使用 sold linker。此類型僅在具有
Clang
和AppleClang
編譯器的 Apple 平台上支援。APPLE_CLASSIC
在經典行為中使用 Apple 連結器 (即在
Xcode 15.0
之前)。此類型僅在具有GNU
、Clang
、AppleClang
和Swift
編譯器的 Apple 平台上支援。MSVC
使用 Microsoft 連結器。此類型僅在具有類似 MSVC 前端的
MSVC
、Clang
和Swift
編譯器的 Windows 平台上支援。
此屬性在 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
屬性。