先给出gpt3.5的回答:
这个错误表明在构建Ceres Solver时,发现了Eigen库的依赖,但是Eigen库的版本与Ceres编译时使用的版本不匹配。
错误消息中显示 Eigen 库的版本为 3.4.0,而 Ceres 编译时使用的版本为 3.3.4。这可能导致不匹配的符号,从而引发构建错误。
解决方法:
-
降级Eigen库版本: 你可以尝试安装或编译一个更接近 Ceres 编译时使用版本的 Eigen 库,即 3.3.4 版本。你可以查看 Ceres Solver 的文档或构建说明,了解它所需的确切版本,并尝试手动安装正确版本的 Eigen。
-
更新Ceres Solver: 如果你的项目允许,可以尝试更新到支持 Eigen 3.4.0 的 Ceres Solver 版本。在Ceres Solver的新版本中,可能已经更新了对Eigen的支持,解决了版本不匹配的问题。
-
强制使用特定版本: 在Ceres Solver的CMake配置中,你可能会找到一个选项,用于强制指定Eigen库的版本。查看Ceres的CMakeLists.txt文件或相关的配置文件,看看是否有选项可以指定要使用的Eigen版本。
我要选择的方法是降级 Eigen库版本
首先卸载现有的版本:
sudo apt-get remove libeigen3-dev
然后通过安装包管理器安装指定版本:
sudo apt-get install libeigen3-dev=3.3.4-4
此外如果我们不确定软件仓库中是否有特定版本,我们可以使用apt list -a libeigen3-dev或apt-cache madison libeigen3-dev来查看可用版本列表:
apt list -a libeigen3-dev
apt-cache madison libeigen3-dev