Spec-Zone.ru › CMake 3.31

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 объекты поддерживают элементы 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.31/command/target_link_directories.html

Spec-Zone.ru

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