ubuntu 安装eigen的一些总结

博主在尝试在Ubuntu 18.04环境下安装Eigen 3.2版本以解决DS-SLAM中[TUM-2]processhasdied的问题,过程中遇到版本冲突、头文件路径设置及依赖库查找的挑战。最终通过源码安装、头文件复制和CMakeLists.txt配置解决了编译问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 强烈建议使用命令行安装:

sudo apt-get install libeigen3-dev

2. 我在运行DS-SLAM时出现了 [TUM-2] process has died 的问题,有的博客里说要安装3.2版本的eigen,于是我就卸载了使用上边命令行安装的 eigen 3.3.7 ,方法如下方连接:

ubuntu16.04卸载eigen_追求卓越583的博客-优快云博客_ubuntu卸载eigen

但是,此时再运行 sudo apt-get install libeigen3-dev 会提示已经是最新的eigen了,无法使用命令行安装,不知道这是为啥,有知道的小伙伴请帮我解释一下。

然后就用源码的方式安装 eigen3.2:

【环境搭建】ubuntu18.04安装Eigen3_.云哲.的博客-优快云博客

注意 :

sudo cp -r /usr/local/include/eigen3/Eigen /usr/local/include

这条命令是把头文件安装在 /usr/local/include 路径下,但是在编译 g2o orb-slam2等源码时还是会提示找不到库,这时就要在CMakeLists.txt 里显式地设置头文件位置:

set(EIGEN_INCLUDE_DIR "/usr/local/include ")

但是,问题又来了!

DS-SLAM源码里同样使用了PCL 和Pangolin,它俩又会找不到eigen!

我的解决方式是:

sudo cp -r /usr/local/include/eigen3/Eigen /usr/local/include

改成 :sudo cp -r /usr/local/include/eigen3(注意,没到Eigen)/usr/include

再编译,会出现:

/usr/include/pcl-1.10/pcl/filters/voxel_grid.h:340:21: error: ‘Index’ is not a member of ‘Eigen’ 340 | for (Eigen::Index ni = 0; ni < relative_coordinates.cols (); ni++)

解决办法:/usr/include/pcl-1.10/pcl/filters/voxel_grid.h 下的 Eigen::Index 改成 int

但是!问题又回到了原点,DS-SLAM运行10帧左右还是会出现 [TUM-2] process has died ,所以应该不是eigen版本的问题,但我健壮的 eigen3.3.7已经卸载了,无语~

3. 最后补充一下,我再编译ceres时,无论用什么方式都找不到eigen库,唯有重新安装eigen3.3.7,可能与最新版的ceres库在CMakeLists.txt里指定了Eigen3版本有关:find_package(Eigen3 3.3 REQUIRED)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值