Spec-Zone.ru › CMake 3.16

target_link_directories

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

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.16/command/target_link_directories.html

Spec-Zone.ru

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