Spec-Zone.ru › CMake 3.29

add_link_options

Новое в версии 3.13.

Добавляет параметры к шагу компоновки для исполняемых файлов, разделяемых библиотек или библиотек модулей в текущем каталоге и ниже, которые добавляются после вызова этой команды.

add_link_options(<option> ...)

Эта команда может быть использована для добавления любых параметров компоновки, но существуют альтернативные команды для добавления библиотек (target_link_libraries() или link_libraries()). Смотрите документацию свойств directory и target LINK_OPTIONS.

Примечание

Эта команда не может быть использована для добавления параметров для статических библиотек, так как они не используют компоновщик. Для добавления флагов архиватора или компоновщика MSVC смотрите свойство целевого объекта STATIC_LIBRARY_OPTIONS.

Аргументы для add_link_options могут использовать выражения генератора с синтаксисом $<...>. Смотрите руководство cmake-generator-expressions(7) для доступных выражений. Смотрите руководство cmake-buildsystem(7) для получения дополнительной информации об определении свойств системы сборки.

Параметры компоновки для хоста и устройства

Новое в версии 3.18: Если задействован шаг компоновки устройства, который контролируется свойствами CUDA_SEPARABLE_COMPILATION и CUDA_RESOLVE_DEVICE_SYMBOLS и политикой CMP0105, исходные параметры будут переданы шагам компоновки хоста и устройства (упакованные в -Xcompiler или эквивалент для компоновки устройства). Параметры, упакованные с помощью выражения генератора $<DEVICE_LINK:...>, будут использоваться только для шага компоновки устройства. Параметры, упакованные с помощью выражения генератора $<HOST_LINK:...>, будут использоваться только для шага компоновки хоста.

Исключение дублирования параметров

Конечный набор параметров, используемых для целевого объекта, формируется путем накопления параметров из текущего целевого объекта и требований к его зависимостям. Набор параметров дублируется для избежания повторений.

Новое в версии 3.12: Хотя это полезно для отдельных параметров, шаг дублирования может разбить группы параметров. Например, -option A -option B преобразуется в -option A B. Можно указать группу параметров, используя оболочечное цитирование вместе с префиксом SHELL:. Префикс SHELL: удаляется, а остальная часть строки параметра анализируется с использованием режима separate_arguments() UNIX_COMMAND. Например, "SHELL:-option A" "SHELL:-option B" преобразуется в -option A -option B.

Обработка различий в драйверах компилятора

Для передачи параметров инструменту компоновки каждый драйвер компилятора имеет свой собственный синтаксис. Префикс LINKER: и разделитель , могут быть использованы для указания параметров, передаваемых инструменту компоновки портативным способом. LINKER: заменяется соответствующим параметром драйвера, а , — соответствующим разделителем драйвера. Префикс и разделитель драйвера задаются значениями переменных CMAKE_<LANG>_LINKER_WRAPPER_FLAG и CMAKE_<LANG>_LINKER_WRAPPER_FLAG_SEP.

Например, "LINKER:-z,defs" преобразуется в -Xlinker -z -Xlinker defs для Clang и -Wl,-z,defs для GNU GCC.

Префикс LINKER: может быть указан как часть выражения префикса SHELL:.

Префикс LINKER: поддерживает как альтернативный синтаксис указание аргументов с использованием префикса SHELL: и пробела в качестве разделителя. Тогда предыдущий пример превращается в "LINKER:SHELL:-z defs".

Примечание

Указание префикса SHELL: в любом месте, кроме начала префикса LINKER:, не поддерживается.

См. также

  • link_libraries()
  • target_link_libraries()
  • target_link_options()
  • CMAKE_<LANG>_FLAGS и CMAKE_<LANG>_FLAGS_<CONFIG> добавляют языковые флаги, передаваемые во все вызовы компилятора. Это включает вызовы, которые выполняют компиляцию и те, которые выполняют компоновку.

© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.29/command/add_link_options.html

Spec-Zone.ru

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