Spec-Zone.ru › CMake

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, Clang с MSVC-подобным фронтендом, Clang с GNU-подобным фронтендом, MSVC, NVIDIA с MSVC-подобным фронтендом и Swift.
BFD

Использовать компоновщик GNU. Этот тип поддерживается для следующих сочетаний платформ и компиляторов:

  • Linux: компиляторы GNU, Clang, LLVMFlang и NVIDIA.
  • Windows: GNU, Clang с GNU-подобным фронтендом.
GOLD

Поддерживается на платформе Linux с компиляторами GNU, Clang, LLVMFlang, NVIDIA и Swift.

MOLD

Использовать компоновщик mold. Этот тип поддерживается для следующих сочетаний платформ и компиляторов:

  • Linux: компиляторы GNU, Clang, LLVMFlang и NVIDIA.
  • Платформы Apple: компиляторы Clang и AppleClang (работает как псевдоним компоновщика sold).
SOLD

Использовать компоновщик sold. Этот тип поддерживается только на платформах Apple с компиляторами Clang и AppleClang.

WILD

Добавлено в версии 4.4.

Использовать компоновщик wild. Этот тип поддерживается только на платформах Linux с компиляторами Clang и GNU.

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–2026 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/prop_tgt/LINKER_TYPE.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API