Cmake找到了Eigen库但没有找到

时间:2017-03-20 11:54:16

标签: compilation cmake eigen

我发现cmake有一种奇怪的行为。在我的计算机上,我有两个版本的Eigen

  1. 通过ubuntu repo(版本 3.2.2
  2. 安装了一个
  3. 下载了一个(版本 3.3.3 )。
  4. 我在$PATH中添加了2.特征库的位置。

    CMakeFiles.txt 中我写

    find_package(Eigen3 3.3.3 REQUIRED)
    if (NOT Eigen3_FOUND)
    MESSAGE( STATUS "Eigen not found.")
    endif(NOT Eigen3_FOUND)
    MESSAGE( STATUS "EIGEN_DIR:         " ${Eigen3_INCLUDE_DIR})
    

    但它输出以下内容:

    -- Found Eigen3: /home/armena/armena/eigen3 (Required is at least version "3.3.3") 
    -- Eigen not found.
    -- EIGEN_DIR:   
    

    根据我的理解,它找到了库,但它无法返回它的位置。知道如何解决这个问题吗?感谢

1 个答案:

答案 0 :(得分:1)

问题是Eigen的软件包配置文件没有遵循CMake建议的命名准则;它的所有变量都以EIGEN3_为前缀,而不是Eigen3_。如果您像这样更改CMakeList,它应该可以工作:

if (NOT EIGEN3_FOUND)
  message( STATUS "Eigen not found.")
endif()
message( STATUS "EIGEN_DIR:         " ${EIGEN3_INCLUDE_DIR})