Compilation Cmake找到特征库,但未标记为“已找到”

Compilation Cmake找到特征库,但未标记为“已找到”,compilation,cmake,eigen,Compilation,Cmake,Eigen,我发现cmake有一个奇怪的行为。在我的计算机上,我有两个版本的Eigen: 通过ubuntu repo安装了一个(版本3.2.2) 下载了一个(版本3.3.3) 我已经添加了2的位置。$PATH中的特征库 在cmakfiles.txt中,我写入 find_package(Eigen3 3.3.3 REQUIRED) if (NOT Eigen3_FOUND) MESSAGE( STATUS "Eigen not found.") endif(NOT Eigen3_FOUND) MESSAGE(

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

  • 通过ubuntu repo安装了一个(版本3.2.2
  • 下载了一个(版本3.3.3
  • 我已经添加了2的位置。
    $PATH
    中的特征库

    cmakfiles.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:   
    


    据我所知,它找到了库,但无法返回其位置。你知道怎么解决这个问题吗?谢谢

    问题在于Eigen的软件包配置文件没有遵循CMake推荐的命名指南;其所有变量的前缀都是
    eigend3
    ,而不是
    eigend3
    。如果您像这样更改CMakeList,它应该可以工作:

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

    你能试试看你找到了什么吗。就这样。