Spec-Zone.ru › CMake 3.22

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:...> generator expression, будут использоваться только для шага компоновки устройства. Параметры, обернутые в $<HOST_LINK:...> generator expression, будут использоваться только для шага компоновки хоста.

Удаление дубликатов параметров

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

Новое в версии 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:, не поддерживается.

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

Spec-Zone.ru

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