CMake Не удается найти Eigen3
Я скопировал FindEigen3.cmake в свой исходный каталог.
Затем я добавил:
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR})
в мой CMakeLists.txt, чтобы сообщить CMake использовать этот файл .cmake.
Затем в моем CMakeLists.txt я:
FIND_PACKAGE(Eigen3)
У меня есть переменная окружения EIGEN3_INCLUDE_DIR, установленная в /home/doriad/src/eigen
Когда я запускаю CMake, я получаю:
-- Could NOT find Eigen3 (missing: EIGEN3_INCLUDE_DIR EIGEN3_VERSION_OK) (Required is at least version "2.91.0")
Это новый клон от Mercurial, поэтому версия должна быть не менее 3.
Любые предложения?
Если я устанавливаю путь к модулю НЕПРАВИЛЬНО, я получаю некоторые подсказки:
Adjust CMAKE_MODULE_PATH to find FindEigen3.cmake or set Eigen3_DIR to the
directory containing a CMake configuration file for Eigen3. The file will
have one of the following names:
Eigen3Config.cmake
eigen3-config.cmake
Однако я не нашел ни одного из этих файлов в исходном каталоге dir или dir из Eigen3. Я попытался установить Eigen3_DIR =/home/doriad/src/eigen, но это тоже не сработало.
Мысли?
Спасибо,
Дэвид
Ответы
Ответ 1
Он работал у меня, когда я установил пакет eigen3 (например, с помощью -DCMAKE_INSTALL_PREFIX =/home/doriad/install), а также установил переменную CMAKE_INSTALL_PREFIX пакета cmake, которая использует eigen3 в том же каталоге.
Из-за проблем с findcripts я фактически начал использовать pkg-config. Для этого вам нужно включить поддержку pkg-config в eigen3 cmake и использовать макрос pkg-config в вашем собственном cmake script. Преимущество в том, что вам больше не нужно устанавливать какие-либо переменные среды.
find_package( PkgConfig )
pkg_check_modules( EIGEN3 REQUIRED eigen3 )
include_directories( ${EIGEN3_INCLUDE_DIRS} )