CMake find_package не находит Find ‹package› .cmake

Я создал и установил библиотеку aruco, которая поместила файл Findaruco.cmake в каталог / usr / local / lib / cmake. В моем файле CMakeLists.txt у меня есть

...
find_package(aruco REQUIRED)

и он всегда возвращает стандартную ошибку

By not providing "Findaruco.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "aruco", but
CMake did not find one.

Could not find a package configuration file provided by "aruco" with any of
the following names:

    arucoConfig.cmake
    aruco-config.cmake

Add the installation prefix of "aruco" to CMAKE_PREFIX_PATH or set
"aruco_DIR" to a directory containing one of the above files.  If "aruco"
provides a separate development package or SDK, be sure it has been
installed.

Я установил переменную среды $ CMAKE_PREFIX_PATH для каждого из следующих значений, и ни одна из них не работает

/usr/local  
/usr/local/lib  
/usr/local/lib/cmake  

Единственное, что работает, - это установить следующее в CMakeLists

set(CMAKE_MODULE_PATH /usr/local/lib/cmake)

Я не уверен что делаю не так


person Anup    schedule 21.10.2015    source источник
comment
Документы CMake, в которых он ищет модули CMake: cmake.org/cmake/help /v3.0/command/find_package.html Таким образом, путь к модулю мне кажется более подходящим по сравнению с путем префикса.   -  person usr1234567    schedule 21.10.2015


Ответы (1)


Попробуйте установить переменную CMake с именем CMAKE_PREFIX_PATH, а не переменную среды. Используйте флаг -D во время вызова cmake:

cmake -D CMAKE_PREFIX_PATH=/usr/local/lib <path to source or build dir>

Но, AFAIR, CMake должен рассматривать префикс /usr/local в качестве поведения по умолчанию.

person arrowd    schedule 21.10.2015
comment
Вместо этого это может быть лучший способ - stackoverflow.com/questions/20746936/ - person tauseef_CuriousGuy; 15.02.2019