ubuntu 16 install ceres 出現 could not find pack eigen3 的問題解決

網上很多教程,但是不知道爲什麼總感覺和我這個問題不對路,我的問題是在安裝好ceres依賴之後,根據下載的源碼對ceres進行cmake時候出現的,錯誤提示沒保存,摘抄網上同款錯誤Eigen3 not found

CMake Error at /home/kevin/src/ceres-solver/CMakeLists.txt:243 (find_package):
  Could not find a configuration file for package "Eigen3" that is compatible
  with requested version "3.3".
  The following configuration files were considered but not accepted:
    /usr/lib/cmake/eigen3/Eigen3Config.cmake, version: unknown

針對這個問題當時沒有一下子解決,原因有很多,但今天早上狀態不錯,搞了一會就解決了,記錄一下,給自己和他人一個方便。

首先,這個問題的原因就是用apt install eigen3時候安裝路徑和ceres cmake時候的查找路徑不同導致的,我們只要將eigen3的庫文件放入ceres cmake指定的路徑就可以解決了,具體怎麼做呢?

1.備份好原來/usr/include下的eigen3文件夾,否則到時候哭死,然後再刪除原來的eigen3;

sudo cp -r /usr/include/eigen3 ~/Destop/
sudo rm -rf /usr/include/eigen3

2.下載最新版本的eigen3,地址是http://eigen.tuxfamily.org/index.php?title=Main_Page,我這裏下載的是Eigen 3.3.7,然後解壓並編譯3連(先驗證原來系統的軟件是否兼容,否則對我們開發來說真是欲哭無淚);

mkdir build
cd build
cmake ..
sudo make install

3.重新安裝好eigen3庫之後,再進入ceres的build進行cmake …發現這個時候已經可以正常cmake了,那我們對ceres進行編譯2連(千萬不要3連!先不要sudo make install!):

cmake ..
make -j4

4.這個時候非常關鍵!進入自己的ros工程,隨便挑一個自己做過的工程空間work space,手動刪除devel和build文件夾,用catkin_make重新編譯一次,看是否有錯誤,確認沒錯誤之後,再去ceres的build下面進行安裝。

sudo make install

5.打完,收工。

發佈了96 篇原創文章 · 獲贊 59 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章