Spec-Zone.ru › CMake 3.29

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).

См. также

  • link_directories()
  • target_compile_definitions()
  • target_compile_features()
  • target_compile_options()
  • target_include_directories()
  • target_link_libraries()
  • target_link_options()
  • target_precompile_headers()
  • target_sources()

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

Spec-Zone.ru

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