這是一個我爬了兩天才爬出來的坑,記錄一下:
編譯安裝Ceres庫之前先安裝其依賴項:
sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3.1.2 libgflags-dev libgoogle-glog-dev libgtest-dev
在這里可能遇見無法定位libcxsparse3.1.2,解決辦法見下:
//第一步,打開sources.list sudo gedit /etc/apt/sources.list //第二步,將下面的源粘貼到最上方sources.list deb http://cz.archive.ubuntu.com/ubuntu trusty main universe //第三步,更新源 sudo apt-get update //第四步,重新輸入依賴項安裝命令安裝依賴項 sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3.1.2 libgflags-dev libgoogle-glog-dev libgtest-dev
然后解壓ceres-solver-1.14.0.zip,進入解壓后的文件,打開終端,編譯安裝:
mkdir build cd build cmake .. make -j8 //可用nproc這個命令查看cpu核心數,我的cpu核心數是8 sudo make install
安裝成功!
為了安心,驗證安裝成功:在build目錄下,輸入命令:
bin/simple_bundle_adjuster ../data/problem-16-22106-pre.txt //注意,路徑問題,得自己去找自己安裝后這兩個文件在什么地方
出現以下信息則說明安裝成功~
熬了我兩天的坑來了:
但是在我運行工程的時候,會出現以下提示:翻了好多博客,意思就是cxsparse.cc:undefined reference to “XXX”——這種就是這個庫的鏈接可能出現了什么問題,但都不知道怎么解決
翻了很多博客,感謝參考中的特別標明的這位博主,我對照他給出的這個
修改了我工程中的MakeFile中ceres鏈接庫,添加了-lcxsparse,見下,成功編譯了工程!
參考了眾多博客,我覺得這條是最有原因的,詳情翻看參考鏈接第三條
參考:
http://www.ceres-solver.org/installation.html
https://blog.csdn.net/DrElaine/article/details/80684355 非常感謝這位博主~解決了我的坑