在一台新的電腦,按照高翔的《視覺slam十四講》安裝庫。
sophus用的是高翔提供的;
安裝高翔書指示
出現錯誤
google::base::checkopmessagebuilder::newstring()』未定義的引用
../../lib/libceres.a(block_sparse_matrix.cc.o):在函式『std::string* google::makecheckopstring(int const&, int const&, char const*)』中:
block_sparse_matrix.cc:(.text._zn6google17makecheckopstringiiieepssrkt_rkt0_pkc[_zn6google17makecheckopstringiiieepssrkt_rkt0_pkc]+0x50):對『google::base::checkopmessagebuilder::newstring()』未定義的引用
../../lib/libceres.a(block_sparse_matrix.cc.o):在函式『std::string* google::makecheckopstring(unsigned long const&, unsigned long const&, char const*)』中:
block_sparse_matrix.cc:(.text._zn6google17makecheckopstringimmeepssrkt_rkt0_pkc[_zn6google17makecheckopstringimmeepssrkt_rkt0_pkc]+0x51):對『google::base::checkopmessagebuilder::newstring()』未定義的引用
網上說可能是沒有公升級gcc的原因。
如下公升級gcc
1 sudo add-apt-repository ppa:ubuntu-toolchain-r/test
2 sudo apt-get update
3sudo apt-get install gcc-5 g++-5
問題依然出現
然後使用這個語句進行cmake
cmake -dcmake_cxx_compiler=g++-5 ..
問題解決,ceres編譯通過
但是在編譯ceres_curve_fitting的時候出錯
[ 50%] building cxx object cmakefiles/curve_fitting.dir/main.cpp.o
[100%] linking cxx executable curve_fitting
cmakefiles/curve_fitting.dir/main.cpp.o: in function `std::string* google::makecheckopstring(int const&, int const&, char const*)':
/usr/include/glog/logging.h:672: undefined reference to `google::base::checkopmessagebuilder::newstring()'
cmakefiles/curve_fitting.dir/main.cpp.o: in function `std::string* google::makecheckopstring(int const&, ceres::dimensiontype const&, char const*)':
/usr/include/glog/logging.h:672: undefined reference to `google::base::checkopmessagebuilder::newstring()'
cmakefiles/curve_fitting.dir/main.cpp.o: in function `main':
/media/huxian/檔案盤/ubuntu_share/視覺slam十四講**/ch6/ceres_curve_fitting/main.cpp:73: undefined reference to `ceres::solver::summary::briefreport() const'
collect2: error: ld returned 1 exit status
cmakefiles/curve_fitting.dir/build.make:122: recipe for target 'curve_fitting' failed
make[2]: *** [curve_fitting] error 1
cmakefiles/makefile2:67: recipe for target 'cmakefiles/curve_fitting.dir/all' failed
make[1]: *** [cmakefiles/curve_fitting.dir/all] error 2
makefile:83: recipe for target 'all' failed
make: *** [all] error 2
*** failure: exit code 2 ***
切換gcc
sudo update-alternatives --config gcc
視覺SLAM十四講Debug
find package opencv required 失敗,找不到opencv3.1.0版本 find package opencv 3 required 成功eigen make unaligned array assert 31 解決辦法 vectorposes 修改為下面的語句 vecto...
視覺SLAM十四講第四講
主要目標 理解李群與李代數的概念,掌握 so 3 se 3 與對應李代數的表示方式。理解 bch 近似的意義。學會在李代數上的擾動模型。使用 sophus 對李代數進行運算。旋轉矩陣自身是帶有約束的 正交且行列式為 1 它們作為優化變數時,會引入額外的約束,使優化變得困難。通過李群 李代數間的轉換關...
《視覺SLAM十四講》第2講
目錄本講主要內容 1 視覺slam中的感測器 2 經典視覺slam框架 3 slam問題的數學表述 想象乙個在室內的移動機械人在自由地探索室內的環境,那麼定位與建圖可以直觀地理解成 1 我在什麼地方?定位 2 周圍環境是怎樣的?建圖 而要完成定位和建圖則需要各種感測器的支援。感測器一般可以分為兩類,...