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<T>(...)替换为std::unique_ptr<T>(new T(...))
2. GTSAM自带的Eigen和系统中原有的Eigen冲突
GTSAM版本为4.0.3
解决方案:
- 重新编译GTSAM
- 使用cmake-gui,更改配置:将
GTSAM_USE_SYSTEM_EIGEN设置为ON - 或在CMakeLists.txt中添加
set(GTSAM_USE_SYSTEM_EIGEN ON)(可参考https://blog.csdn.net/cyx610481953/article/details/115000686)










