CMake找不到Eigen3。

21
我已经将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,但这也没有起作用。

有什么想法吗?

谢谢,

David


1
你能找到解决方案吗?我仍然无法解决这个问题,这很奇怪,因为我可以使用其他库,如OpenCV、Matlab和Boost。 - Jav_Rock
2
你从哪里获取到FindEigen3.cmake文件的? - Robert Massaioli
1个回答

8

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

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

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

你能举个例子说明如何在CMake文件中使用pkg-config来实现这个目的吗? - Grzenio
你是怎么安装eigen3包的? - Phil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接