记录一下自己在运行高博的ORBSLAM2_with_pointcloud_map出现的问题及查找的解决方案。
问题1:double free or corruption (out)、核心已转储
方法一:(删除CMakeLists.txt中的-march=native)
找到第三方库(Thirdparty)DBow2和g2o以及OrbSLAM2项目中的CMakeLists.txt文件“-march=native”所在的位置,可以用文本编辑器打开,然后ctrl+F进行查找,位置如下图所示
删除-march=native
然后重新编译,运行
bash build.sh
希望有大佬能解释一下"-march=native"的作用,想理解为什么删除后就不会出现这个错误
方法二:(更换Eigen版本为3.2.X)
由于高博跑的时候用的是Eigen3.2的衍生版本,因此如果你用的是Eigen3.3版本以上,也可能出现这个错误,但本人运行3.4版本再修改完语法问题后也可以正常运行只不过3.2版本比较稳定(搭配OpenCV 3.2和pcl 1.8会更香哦)
因此你只需要下载一个Eigen3.2的版本,运行如下命令:
cd /usr/local/include/eigen3/
sudo mv Eigen unsupported Eigen3X/
cd 你安装的Eigen3的路径下
sudo cp Eigen unsupported /usr/local/include/eigen3/
mkdir Eigen2X 方便你以后更换
然后在ORBSLAM2_with_pointcloud_map项目中的CMakeLists.txt文件中更改为find_package(Eigen 3.2 REQUIRED)
其他问题再续