【问题标题】:Cmake finds Eigen library but does not mark with foundCmake 找到 Eigen 库但没有标记为 found
【发布时间】:2017-08-11 16:35:10
【问题描述】:

我发现cmake 有一个奇怪的行为。在我的电脑上,我有两个版本的Eigen:

  1. 通过 ubuntu repo 安装了一个(版本 3.2.2)
  2. 下载了一个(版本3.3.3)。

我已经在$PATH中添加了2.Eigen库的位置。

在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:   

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

【问题讨论】:

  • 你能试试EIGEN3_FOUND吗?
  • @Angew 你明白了。就是这样。

标签: compilation cmake eigen


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2018-08-20
    • 1970-01-01
    • 2014-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-09
    • 1970-01-01
    • 2012-04-13
    相关资源
    最近更新 更多