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.31/command/add_link_options.html