CMake找不到Eigen3

时间:2011-05-07 15:28:08

标签: 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 / eigen,但这也不起作用。

思想?

谢谢,

大卫

1 个答案:

答案 0 :(得分:8)

当我安装eigen3软件包(例如使用-DCMAKE_INSTALL_PREFIX = / home / doriad / install)时,它对我有用,并且还将使用eigen3的cmake软件包的CMAKE_INSTALL_PREFIX变量设置到同一目录。

由于findcripts存在问题,我实际上已经开始使用pkg-config了。为此,您需要在eigen3 cmake中启用pkg-config支持,并在您自己的cmake脚本中使用pkg-config宏。优点是您不再需要设置任何环境变量。

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