#cmake #eigen
#cmake #eigen
Вопрос:
Я скопировал файл 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
Однако я не нашел ни одного из этих файлов ни в исходном каталоге, ни в каталоге сборки Eigen3. Я попытался установить Eigen3_DIR=/home/doriad/src /собственный файл, но это тоже не сработало.
Мысли?
Спасибо,
Дэвид
Комментарии:
1. не могли бы вы найти решение? Я все еще не могу решить эту проблему, и это странно, потому что я использую любую другую библиотеку, такую как opencv, matlab, boost
2. Откуда вы взяли файл FindEigen3.cmake?
Ответ №1:
У меня это сработало, когда я установил пакет eigen3 (например, используя -DCMAKE_INSTALL_PREFIX=/home/doriad/install), а также установил переменную CMAKE_INSTALL_PREFIX пакета cmake, который использует eigen3, в тот же каталог.
Из-за проблем с findscripts я фактически начал использовать вместо этого pkg-config. Для этого вам необходимо включить поддержку pkg-config в eigen3 cmake и использовать макрос pkg-config в вашем собственном скрипте cmake. Преимущество в том, что вам больше не нужно устанавливать какие-либо переменные среды.
find_package( PkgConfig )
pkg_check_modules( EIGEN3 REQUIRED eigen3 )
include_directories( ${EIGEN3_INCLUDE_DIRS} )
Комментарии:
1. Не могли бы вы привести пример того, как использовать pkg-config в файле cmake для этой цели?
2. да, как вы установили пакет eigen3?