LINKER_TYPE
Новое в версии 3.29.
Укажите, какой компоновщик будет использоваться для шага компоновки. Значение свойства может использовать generator expressions.
Примечание
Предполагается, что указанный компоновщик полностью совместим с предустановленным, который обычно вызывается компилятором. CMake не будет выполнять перевод опций.
Типы компоновщиков чувствительны к регистру и могут содержать только буквы, цифры и символы подчеркивания. Типы компоновщиков, определенные в верхнем регистре, зарезервированы для собственных встроенных типов CMake. Предопределенные типы компоновщиков:
-
DEFAULT -
Этот тип соответствует стандартной компоновке, по сути, эквивалентен тому, что свойство цели
LINKER_TYPEне установлено вообще. -
SYSTEM -
Используйте стандартный компоновщик, предоставляемый платформой или инструментальной цепочкой. Например, это подразумевает компоновщик Microsoft для всех совместимых с MSVC компиляторов. Этот тип поддерживается для следующих сочетаний платформа-компилятор:
- Linux:
GNU,Clang,LLVMFlang,NVIDIA, иSwiftкомпиляторы. - Платформы Apple:
AppleClang,Clang,GNU, иSwiftкомпиляторы. - Windows:
MSVC,GNU,Clang,NVIDIA, иSwiftкомпиляторы.
- Linux:
-
LLD -
Используйте компоновщик
LLVM. Этот тип поддерживается для следующих сочетаний платформа-компилятор:- Linux:
GNU,Clang,LLVMFlang,NVIDIA, иSwiftкомпиляторы. - Платформы Apple:
Clang,AppleClang, иSwiftкомпиляторы. - Windows:
GNU,Clangс фронтендом типа MSVC,Clangс фронтендом типа GNU,MSVC,NVIDIAс фронтендом типа MSVC, иSwift.
- Linux:
-
BFD -
Используйте компоновщик
GNU. Этот тип поддерживается для следующих сочетаний платформа-компилятор:- Linux:
GNU,Clang,LLVMFlang, иNVIDIAкомпиляторы. - Windows:
GNU,Clangс фронтендом типа GNU.
- Linux:
-
GOLD -
Поддерживается на платформе Linux с
GNU,Clang,LLVMFlang,NVIDIA, иSwiftкомпиляторами. -
MOLD -
Используйте компоновщик mold. Этот тип поддерживается для следующих сочетаний платформа-компилятор:
- Linux:
GNU,Clang,LLVMFlang, иNVIDIAкомпиляторы. - Платформы Apple:
ClangиAppleClangкомпиляторы (выступает как псевдоним для sold компоновщика).
- Linux:
-
SOLD -
Используйте компоновщик sold. Этот тип поддерживается только на платформах Apple с
ClangиAppleClangкомпиляторами. -
APPLE_CLASSIC -
Используйте компоновщик Apple в классическом поведении (т.е. до
Xcode 15.0). Этот тип поддерживается только на платформах Apple сGNU,Clang,AppleClang, иSwiftкомпиляторами. -
MSVC -
Используйте компоновщик Microsoft. Этот тип поддерживается только на платформе Windows с
MSVC,Clangс фронтендом типа MSVC, и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 для отдельных целей.
© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.30/prop_tgt/LINKER_TYPE.html