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
在 Linux 平台上,使用
GNU
、Clang
、LLVMFlang
、NVIDIA
和Swift
編譯器支援。MOLD
使用 mold 連結器。以下平台-編譯器組合支援此類型:
Linux:
GNU
、Clang
、LLVMFlang
和NVIDIA
編譯器。Apple 平台:
Clang
和AppleClang
編譯器(作為 sold 連結器 的別名)。
SOLD
使用 sold 連結器。此類型僅在 Apple 平台上,使用
Clang
和AppleClang
編譯器時才受支援。APPLE_CLASSIC
以傳統行為(即在
Xcode 15.0
之前)使用 Apple 連結器。此類型僅在 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
屬性。