【问题标题】:CMake Can't find Eigen3CMake找不到Eigen3
【发布时间】:2011-08-20 18:58:09
【问题描述】:

我已将 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,但也没有用。

想法?

谢谢,

大卫

【问题讨论】:

  • 你能找到解决办法吗?我仍然无法解决这个问题,这很奇怪,因为我可以使用任何其他库,如 opencv、matlab、boost
  • 你从哪里得到 FindEigen3.cmake 文件的?

标签: cmake eigen


【解决方案1】:

当我安装了 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 来实现此目的?
  • 是的,你是如何安装 eigen3 包的?
猜你喜欢
  • 2016-03-12
  • 2015-10-24
  • 1970-01-01
  • 2020-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-19
相关资源
最近更新 更多