首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到具有CMake的Eigen3

找不到具有CMake的Eigen3
EN

Stack Overflow用户
提问于 2015-12-08 00:51:07
回答 2查看 22.3K关注 0票数 13

我有点绝望:为了我的学习,我需要和Eigen和CMake一起工作。如果我将整个库复制到编译器默认查找的目录中,那么我就可以使用Eigen

find_package(Eigen3 REQUIRED)

我得到以下错误:

代码语言:javascript
复制
CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
  Could NOT find Eigen3 (missing: EIGEN3_INCLUDE_DIR EIGEN3_VERSION_OK)
  (Required is at least version "2.91.0")
Call Stack (most recent call first):
  /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE)
  FindEigen3.cmake:76 (find_package_handle_standard_args)
  CMakeLists.txt:8 (find_package)

-- Configuring incomplete, errors occurred!



Now I searched for solutions but all I those I tried (also those available on stackoverflow: 

Find package Eigen3 for CMake 
or 
CMake Can't find Eigen3 )
did not work.
My Eigen Version (according to the Macros in Core/util/Macros.h) is 3.2.5.
I keep the Eigen directory in /usr/local/include, I use the FindEigen3.cmake which comes with the Eigen library and my CMakeLists.txt looks as follows: 



cmake_minimum_required(VERSION 2.8)
project(Test)

set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})
find_package(Eigen3 REQUIRED)
include_directories(${EIGEN3_INCLUDE_DIR})
message("Found Eigen3 in: ${EIGEN3_INCLUDE_DIR}")

add_executable(main test.cpp)


Has anyone an idea what's going wrong?

Kind regards,
Julien
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-08 17:43:34

将我的评论转化为答案

查找包脚本通常使用find_path()命令来检测包的包含目录(有关完整的详细信息,请参见it's documentation )。

FindEigen3.cmake使用以下代码片段:

find_path(EIGEN3_INCLUDE_DIR命名signature_of_eigen3_matrix_library路径${CMAKE_INSTALL_PREFIX}/include ${KDE4_INCLUDE_DIR} PATH_SUFFIXES eigen3特征)

因此,它在Unix/Linux主机上缺省为/usr/localCMAKE_INSTALL_PREFIX中查找。

下面的方法对我很有效:

  • 转到Eigen源目录,然后运行CMake和安装步骤mkdir build > cd build > cmake ..> make install

然后,

  • FindEigen3.cmake复制到项目源目录。
  • 现在您的代码可以找到Eigen (只是更改为list(APPEND ...))

list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}") find_package(需要Eigen3)

参考

票数 14
EN

Stack Overflow用户

发布于 2017-09-12 16:15:20

find_package(Eigen3 REQUIRED)前添加FindEigen3.cmake的路径,如下所示:

代码语言:javascript
复制
LIST(APPEND CMAKE_MODULE_PATH "/usr/share/cmake-2.8/Modules/")
find_package(Eigen3)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34138879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档