高翔博士的《SLAM十四讲》中,在第四章中要求安装Sophus的非模板库,并且版本改为a621ff。下载完成后,在终端cmake …进行编译可以通过,但紧接着的make步骤就会卡在5%的位置,并报错:
/home/apple/Sophus/sophus/so2.cpp:32:26: error: lvalue required as left operand of assignment
32 | unit_complex_.real() = 1.;
我个人的解决方式是打开so2.cpp文件,将下面两行构造函数注释掉。
SO2::SO2()
{
//unit_complex_.real() = 1.;
//unit_complex_.imag() = 0.;
}
之后就可以顺利编译了。