Spec-Zone.ru › CMake 3.20

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: Хотя это полезно для отдельных параметров, шаг дедупликации может разбить группы параметров. Например, -D A -D B становится -D A B. Можно указать группу параметров с использованием оболочки-подобной цитирования вместе с префиксом SHELL:. Префикс SHELL: опускается, и остальная часть строки параметров анализируется в режиме separate_arguments() UNIX_COMMAND. Например, "SHELL:-D A" "SHELL:-D B" становится -D A -D 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.20/command/add_link_options.html

Spec-Zone.ru

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