Подтвердить что ты не робот

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, но это тоже не сработало.

Мысли?

Спасибо,

Дэвид

4b9b3361

Ответ 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} )