Команда find_library
фактически выполняет поиск во многих местах, которые также могут настраиваться пользователем (человеком, который использует проект CMake с вызовом find_library
, но не изменяет CMakeLists.txt
).
Кроме того, с помощью HINTS
и PATHS
вы (как разработчик проекта) можете добавить дополнительные подсказки для поиска, и эти подсказки также могут быть изменены пользователем.
Вы можете найти полное описание путей поиска. в документации .
Когда вы решаете, как заставить find_library
искать по определенному пути, вам нужно "классифицировать" источник этого пути. Некоторые распространенные случаи:
Является ли путь стандартным для конкретной ОС или дистрибутива? Если это так, CMake обычно ищет этот путь по умолчанию.
Путь идет от пользовательской установки пакета? Если это так, пользователь может назначить префикс установки некоторой переменной (например, XXX_ROOT
, где XXX - имя или сокращение пакета), который используется как PATHS
или HINTS
в вашем find_library
вызов.
Путь идет от префикса пользовательской установки , общего для многих пакетов ? Если это так, пользователь может назначить этот общий префикс переменной CMAKE_PREFIX_PATH
, и find_library
автоматически примет этот префикс.
Обратите внимание, что find_library
обычно используется вмодуль FindXXX.cmake
(который активируется через find_package(XXX)
). Такой модуль может включать дополнительную логику для поиска дополнительных возможных местоположений библиотеки в соответствии с самоанализом системы.