add_link_options
Добавление опций к шагу компоновки для исполняемых файлов, общих библиотек или библиотек модулей в текущей директории и ниже, которые добавляются после вызова этой команды.
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) для получения дополнительной информации о определении свойств системы сборки.
Когда участвует шаг компоновки устройства, который управляется свойствами CUDA_SEPARABLE_COMPILATION и CUDA_RESOLVE_DEVICE_SYMBOLS и политикой CMP0105, исходные опции будут переданы шагам компоновки хоста и устройства (упакованные в -Xcompiler или эквивалент для компоновки устройства). Опции, упакованные с $<DEVICE_LINK:...> generator expression, будут использоваться только для шага компоновки устройства. Опции, упакованные с $<HOST_LINK:...> generator expression, будут использоваться только для шага компоновки хоста.
Конечный набор опций компиляции или компоновки, используемых для целевого объекта, формируется путем накопления опций из текущего целевого объекта и требований к его зависимостям. Набор опций дублируется, чтобы избежать повторений. Хотя это полезно для отдельных опций, шаг дублирования может разбить группы опций. Например, -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–2020 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.18/command/add_link_options.html