git clone https://github.com/strasdat/Sophus.git
cd Sophus/
mkdir build
cd build
cmake ..
make
sudo make install
其中在make阶段可能会报错:
error: lvalue required as left operand of assignment
32 | unit_complex_.real() = (1.);
打开 Sophus/sophus/so2.cpp文件
//将
SO2::SO2()
{
unit_complex_.real() = 1.;
unit_complex_.imag() = 0.;
}
//改为
SO2::SO2()
{
unit_complex_.real(1.);
unit_complex_.imag(0.);
}
同时需要注意的是在编写代码的时候
#include <sophus/so3.hpp>
会报错:error: sophus/so3.hpp: 没有那个文件或目录
。
因为使用gitclone下载的是新版的sophus,是基于模板类的,它对应的头文件是 .h
,而基于非模板类的sophus 对应的头文件是 .hpp
,所以会出现报错。
所以需要改成:
#include <sophus/so3.h>