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