GTSAM和EIGEN的版本对应问题
错误:
/usr/local/include/gtsam/base/Vector.h:72:1: error: static assertion failed: Error: GTSAM was built against a different version of Eigen
首先:
原因可能是GTSAM自带的eigen和系统安装的eigen之间有冲突。GTSAM编译的时候默认使用了自带的eigen,而系统中如果还手动安装过一个eigen的话,就会出现两个eigen的冲突
在GTSAM的CMakeLists.txt文件中的判断使用哪个EIGEN指令前边添加如下代码:
set(GTSAM_USE_SYSTEM_EIGEN ON)
这样就相当于GTSAM编译也使用了系统eigen。
然后删除build,并重新创建build进行编译。果然再次编译的时候出现了下面信息:

当GTSAM编译安装好后,再次编译出错的代码,就可以解决以上问题。
如果还是提示该错误那么:
可能是因为用了ROS的catkin_make,ROS找到的Eigen版本与gtsam找到的版本不一致造成的,那么解决问题的办法就是使它们一致,即需要使/usr/local/include、/usr/include 这两个文件夹下的eigen版本一致
不自量力的还手,直至死方休。

浙公网安备 33010602011771号