視覺slam十四講的庫安裝

2021-09-01 20:12:20 字數 2627 閱讀 3074

在一台新的電腦,按照高翔的《視覺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 周圍環境是怎樣的?建圖 而要完成定位和建圖則需要各種感測器的支援。感測器一般可以分為兩類,...