Spec-Zone.ru › CMake 3.19

target_link_directories

Новое в версии 3.13.

Добавляет каталоги ссылок для целевого объекта.

target_link_directories(<target> [BEFORE]
  <INTERFACE|PUBLIC|PRIVATE> [items1...]
  [<INTERFACE|PUBLIC|PRIVATE> [items2...] ...])

Указывает пути, в которых компоновщик должен искать библиотеки при компоновке данного целевого объекта. Каждый элемент может быть абсолютным или относительным путем, причём относительный путь интерпретируется относительно текущей директории исходного кода. Эти элементы будут добавлены в команду компоновки.

Указанный <target> объект должен быть создан командой, такой как add_executable() или add_library(), и не должен быть целевым объектом-псевдонимом.

Ключевые слова INTERFACE, PUBLIC и PRIVATE необходимы для указания области действия следующих элементов. PRIVATE и PUBLIC элементы заполняют свойство LINK_DIRECTORIES целевого объекта <target>. PUBLIC и INTERFACE элементы заполняют свойство INTERFACE_LINK_DIRECTORIES целевого объекта <target> (только импортированные целевые объекты поддерживают INTERFACE элементы). Каждый элемент указывает каталог ссылок и будет преобразован в абсолютный путь при необходимости, перед добавлением в соответствующее свойство. Повторные вызовы для одного и того же <target> добавляют элементы в порядке вызова.

Если BEFORE указано, содержимое будет добавлено в начало соответствующего свойства вместо добавления в конец.

Аргументы для target_link_directories могут использовать «генераторные выражения» с синтаксисом $<...>. См. cmake-generator-expressions(7) руководство для доступных выражений. См. cmake-buildsystem(7) руководство для получения дополнительной информации о построении системных свойств.

Примечание

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

  • Генераторы проектов, такие как Xcode, где пользователь может переключать архитектуру целевого объекта во время сборки, но полный путь к библиотеке нельзя использовать, поскольку он предоставляет только одну архитектуру (то есть это не универсальный двоичный файл).
  • Библиотеки могут сами иметь другие зависимости частных библиотек, которые ожидают быть найденными через механизмы RPATH, но некоторые компоновщики не способны полностью декодировать эти пути (например, из-за наличия таких вещей, как $ORIGIN).

© 2000–2020 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.19/command/target_link_directories.html

Spec-Zone.ru

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