Ceres庫安裝踩坑(SLAM十四講)

由於ceres庫和eigen庫有一定的版本對應關係,因此很容易在編譯期間報錯。
報錯內容是:雖然找到了.cmake,但是版本不匹配,需要eigen3.2.92之類之類

之前通過Eigen的官網直接安裝了Eigen3.3.7(採用3.3版本是爲了和sophus所對應,教程
但是Eigen3.3.7無法與ceres1.11.0對應(如果你是通過artographer安裝的ceres,那麼版本就爲1.11.0)

因此,爲了找到與Eigen3.3.7對應版本的ceres,可以直接在ceres官網上查找最新版本的ceres1.14.0進行安裝,當然,直接git可能會慢,因此先下載安裝包再進行安裝。

由於Eigen3.3.7是最新的eigen穩定版本,所以它與最新的ceres穩定版本1.14.0對應肯定沒有任何問題。

0.準備工作

  1. 刪除掉一些舊版本ceres的文件,否則直接安裝清理不掉,依然會報錯
    ①/usr/local/include中的ceres文件夾直接刪掉
    ②/usr/local/lib下的libceres.a
    ③/usr/local/lib/cmake/Ceres 下有關ceres的全都刪掉
    ④/usr/local/share/Ceres 文件夾刪掉

上面四點中,若是沒有的話就不必刪了
如果怕還有殘餘,則在終端:locate ceres 然後 locate Ceres 主要看usr底下還有沒有關於ceres的,若有,必殺之

  1. 安裝依賴庫
    ceres官網查看需要哪些依賴庫(安裝之前還是建議先locate一遍,看看是否已經安裝過)

下面進行安裝ceres1.14.0

1.下載ceres1.14.0壓縮包並安裝

  1. 下載鏈接:https://download.csdn.net/my(之後上傳,正在審覈中)

  2. 提取到此處,並進入文件夾,在終端打開

  3. 編譯安裝

mkdir build
cd build
cmake ..
make -j4
sudo make install

2.測試

CMakeLists.txt中:
(用的是slam十四講ch6中的curvefitting代碼)

# Ceres
find_package(Ceres REQUIRED)
include_directories(${CERES_INCLUDE_DIRS})

add_executable(ceresCurveFitting ceresCurveFitting.cpp)
target_link_libraries(ceresCurveFitting ${OpenCV_LIBS} ${CERES_LIBRARIES})

最終測試成功

3. 補充

如果依然報版本不匹配的錯誤,很有可能是準備工作中ceres的文件沒刪乾淨,記住那個CeresConfig.cmake文件一定要刪掉,可以用locate位置,也可以在kdevelop的報錯中雙擊點開文件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章