1. 源码中采用了C++17标准,而我的版本较低,所以作如下修改:
- 将CMakeLists.txt中的set(CMAKE_CXX_STANDARD 17)替换为set(CMAKE_CXX_STANDARD 11)将std::optional替换为boost::optional将std::nullopt替换为boost::none将std::make_unique
2. GTSAM自带的Eigen和系统中原有的Eigen冲突
GTSAM版本为4.0.3
原因: GTSAM编译的时候默认使用了自带的Eigen,而系统中如果还手动安装过一个Eigen的话,就会出现两个Eigen的冲突。
解决方案:
- 重新编译GTSAM使用cmake-gui,更改配置:将GTSAM_USE_SYSTEM_EIGEN设置为ON或在CMakeLists.txt中添加set(GTSAM_USE_SYSTEM_EIGEN ON)(可参考https://blog.csdn.net/cyx610481953/article/details/115000686)



