Spec-Zone.ru › CMake

LINK_LIBRARIES

Список прямых зависимостей для компоновки.

Это свойство задаёт список библиотек или целей, которые будут использоваться при компоновке. Помимо значений, принимаемых командой target_link_libraries(), значения можно задавать непосредственно для любой цели с помощью команды set_property().

Генераторы используют значение этого свойства для построения правила компоновки цели. Сначала компонуются прямые зависимости, затем косвенные зависимости из транзитивного замыкания свойств INTERFACE_LINK_LIBRARIES прямых зависимостей. См. политику CMP0022.

Содержимое LINK_LIBRARIES может использовать generator expressions с синтаксисом $<...>. Политика CMP0131 влияет на поведение генераторного выражения LINK_ONLY для этого свойства.

Дополнительную информацию о задании свойств системы сборки см. в руководстве cmake-buildsystem(7).

Примечание

Вызов target_link_libraries(<target> ...) может обновить это свойство у <target>. Если <target> создана не в том же каталоге, где выполняется вызов, команда target_link_libraries() заключит каждую запись в форму ::@(directory-id);...;::@, где ::@ — литерал, а (directory-id) не задан. Это указывает генераторам, что именованные библиотеки следует искать в области видимости вызывающего кода, а не в области видимости, в которой была создана <target>. Допустимые идентификаторы каталогов удаляются при экспорте командами install(EXPORT) и export().

В сложных сценариях список прямых зависимостей для компоновки, заданный этим свойством, может обновляться требованиями к использованию зависимостей. См. свойства целей INTERFACE_LINK_LIBRARIES_DIRECT и INTERFACE_LINK_LIBRARIES_DIRECT_EXCLUDE.

Сведения о том, как CMake упорядочивает прямые зависимости для компоновки в командных строках компоновщика, см. в переменной CMAKE_LINK_LIBRARIES_STRATEGY и соответствующем свойстве цели LINK_LIBRARIES_STRATEGY.

Обработка различий драйверов компилятора

Добавлено в версии 4.0.

Для передачи параметров инструменту компоновщика каждый драйвер компилятора использует собственный синтаксис. Префикс 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:-z defs".

Примечание

Использовать префикс SHELL: где-либо, кроме начала префикса LINKER:, не поддерживается.

© 2000–2026 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/prop_tgt/LINK_LIBRARIES.html

Spec-Zone.ru

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