CMake не может найти Eigen3 - PullRequest
21 голосов
/ 07 мая 2011

Я скопировал 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,get:

-- 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

Однако я не нашел ни одного из этих файлов ни в исходном, ни в сборочном каталоге Eigen3.Я пытался установить Eigen3_DIR = / home / doriad / src / eigen, но это тоже не сработало.

Мысли?

Спасибо,

Дэвид

1 Ответ

8 голосов
/ 12 июня 2011

Это сработало для меня, когда я установил пакет eigen3 (например, используя -DCMAKE_INSTALL_PREFIX = / home / doriad / install), а также установил переменную CMAKE_INSTALL_PREFIX пакета cmake, использующего eigen3, в тот же каталог.

Из-за проблем с findcripts я фактически начал использовать pkg-config . Для этого вам нужно включить поддержку pkg-config в ema3 cmake и использовать макрос pkg-config в вашем собственном скрипте cmake. Преимущество заключается в том, что вам больше не нужно устанавливать переменные окружения.

find_package( PkgConfig )
pkg_check_modules( EIGEN3 REQUIRED eigen3 )
include_directories( ${EIGEN3_INCLUDE_DIRS} )
...