2017-03-20 84 views
1

我發現一個奇怪的行爲cmake。在我的電腦我的Eigen兩個版本:Cmake找到Eigen庫,但沒有發現標記

  1. 通過安裝ubuntu的回購協議(版本3.2.2
  2. 下載一個(版本3.3.3 )之一。

我在$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

你可以試試'EIGEN3_FOUND'嗎? – Angew

+0

@Angew你明白了。就是這樣。 –

回答

1

問題是Eigen的包配置文件不符合CMake推薦的命名準則;其所有變量的前綴爲EIGEN3_,而不是Eigen3_。如果你像這樣改變你的CMakeList,它應該可以工作:

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