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: отбрасывается, а оставшаяся строка параметров разбирается в режиме UNIX_COMMAND команды separate_arguments(). Например, "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>добавляют языковые флаги, передаваемые при всех вызовах компилятора. Это относится как к вызовам для компиляции, так и к вызовам для компоновки. -
Добавлено в версии 4.3:
CMAKE_<LANG>_LINK_FLAGSиCMAKE_<LANG>_LINK_FLAGS_<CONFIG>добавляют языковые флаги, передаваемые при всех вызовах компилятора, выполняющих компоновку.
© 2000–2026 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/command/add_link_options.html