2011-05-07 443 views
21

我已将FindEigen3.cmake复制到我的源代码目录中。CMake无法找到Eigen3

我接着说:

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}) 

我的CMakeLists.txt告诉CMake的使用这个.cmake文件。

然后在我的CMakeLists.txt我做的:

FIND_PACKAGE(Eigen3) 

我有environent变量EIGEN3_INCLUDE_DIR设置为/ home/doriad/src目录/征

当我运行CMake的,我得到:

-- Could NOT find Eigen3 (missing: EIGEN3_INCLUDE_DIR EIGEN3_VERSION_OK) (Required is at least version "2.91.0") 

这是从水银新鲜克隆,这样的版本应该是至少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

你能找到解决办法吗?我仍然无法解决这个问题,这是奇怪的,因为我cauld像opencv,matlab,boost – 2012-09-04 07:33:02

+2

你从哪里得到的FindEigen3.cmake文件? – 2012-12-30 04:20:54

回答

7

它的工作对我来说,当我安装了eigen3包(例如,使用-DCMAKE_INSTALL_PREFIX = /家庭/ doriad /安装),并设置CMake的包的CMAKE_INSTALL_PREFIX变量即使用eigen3到相同的目录。

由于发现问题,我实际上开始使用pkg-config来代替。为此,您需要在eigen3 cmake中启用pkg-config支持,并在您自己的cmake脚本中使用pkg-config宏。好处是你不需要再设置任何环境变量。

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

您可以举一个如何在cmake文件中使用pkg-config的例子吗? – Grzenio 2013-05-24 09:16:16