Я пытаюсь использовать find_package в моем файле CMake верхнего уровня.Вот моя структура папок
│ CMakeLists.txt
│
├───build
│
├───include
│
├───lib
│ └───crossguid
│ ├───include
│ │ └───crossguid
│ │ guid.hpp
│ │
│ ├───lib
│ │ libcrossguid.a
│ │
│ └───share
│ └───crossguid
│ │ LICENSE
│ │ README.md
│ │
│ └───cmake
│ crossguid-config-release.cmake
│ crossguid-config.cmake
│
└───src
Как я это делаю: find_package(crossguid REQUIRED CONFIG PATH_SUFFIXES lib/)
.Согласно CMake Doc это должно соответствовать:
<prefix>
/ <name>*
/ (lib/<arch>
| lib*
| share
) / <name>*
/(cmake | CMake) / (W / U)
Если указано PATH_SUFFIXES, суффиксы добавляются к каждой записи каталога (W) или (U) по одному.
Итак, у меня есть "lib /" для <prefix>
, кроссгид для name
, share
, снова кроссгид для name
и папка cmake
с необходимыми файлами конфигурации.Но по какой-то причине CMake не может их найти:
CMake Ошибка в CMakeLists.txt: 26 (find_package): Не удалось найти файл конфигурации пакета, предоставленный «crossguid», с любым из следующих имен:
crossguidConfig.cmake
crossguid-config.cmake
Добавьте префикс установки "crossguid" в CMAKE_PREFIX_PATH или установите "crossguid_DIR" в каталог, содержащий один из указанных выше файлов.Если «crossguid» предоставляет отдельный пакет разработки или SDK, убедитесь, что он установлен.
Более того, я попытался изменить суффикс пути на lib / crossguid / share / crossguid / cmake, чтобы он соответствовалсамая первая <prefix>/ (W)
, но все еще получала ту же ошибку.
Я могу исправить проблему с помощью PATHS или crossguid_DIR, но эта проблема все еще остается для меня загадкой.