target_link_options
Добавлен в версии 3.13.
Добавляет параметры к шагу компоновки для исполняемого файла, разделяемой библиотеки или библиотеки модулей.
target_link_options(<target> [BEFORE] <INTERFACE|PUBLIC|PRIVATE> [items1...] [<INTERFACE|PUBLIC|PRIVATE> [items2...] ...])
Указанный <target> должен был быть создан командой, такой как add_executable() или add_library(), и не должен быть целью-псевдонимом.
Эта команда может быть использована для добавления любых параметров компоновки, но существуют альтернативные команды для добавления библиотек (target_link_libraries() или link_libraries()). Смотрите документацию по свойствам directory и target LINK_OPTIONS.
Примечание
Эта команда не может быть использована для добавления параметров для целей статических библиотек, так как они не используют компоновщик. Чтобы добавить флаги архиватора или компоновщика MSVC, см. свойство цели STATIC_LIBRARY_OPTIONS.
Если BEFORE указано, содержимое будет добавлено в начало свойства, а не в конец.
Ключевые слова INTERFACE, PUBLIC и PRIVATE необходимы для указания области следующих аргументов. Элементы PRIVATE и PUBLIC заполнят свойство LINK_OPTIONS цели <target>. Элементы PUBLIC и INTERFACE заполнят свойство INTERFACE_LINK_OPTIONS цели <target>. Следующие аргументы определяют параметры компоновки. Повторные вызовы для одного и того же <target> добавляют элементы в порядке вызова.
Примечание
импортированные цели поддерживают только INTERFACE элементы.
Аргументы к target_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: не поддерживается.
См. также
target_compile_definitions()target_compile_features()target_compile_options()target_include_directories()target_link_libraries()target_link_directories()target_precompile_headers()target_sources()-
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/latest/command/target_link_options.html