这个编译真的头疼了很久,编译了好几天就是没成功, 各种问题. 问题最多次的是 : c ++ internal complier error:killked ,
查找网上关于这个问题的解决方法,无一不是显存不够 要设置交换空间, 但是我设置了4G的交换空间还是行. 中间折腾了很久换了几个版本的pcl 以及vtk 等, 特别是vtk 的问题, cmake 的时候经常有问题, 但是可能不是影响make的问题, 但是make不成功又让人怀疑, 比较好的安装vtk 是源码安装,时间也比较久.
一开始安装我都是参考了ubuntu 16/18下的安装, 先装很多依赖库什么的,有的还安装不成功,后来
参考了树莓派安装pcl: https://blog.csdn.net/mush_room/article/details/78411846 非常简洁, 就将信将疑的试试看,没想到成功安装了. 但是对于 c ++ internal complier error:killked 报错我还是不明白为什么.
首先设置交换空间. 一般香橙派会默认设置好2G的交换空间, 我这又增加了3G 怕不够用:
1.设置交换空间的大小
sudo dd if=/dev/zero of=/swapfile bs=64M count=48
2.创建交换空间文件
sudo mkswap /swapfile
3.开启交换空间
sudo swapon /swapfile
此时你就可以重新编译你的文件了,当编译完成后,回收这部分临时的交换空间
1.先关闭交换空间
sudo swapoff /swapfile
2.删除交换空间
sudo rm /swapfile
其次,安装PCL的依赖库:
这里要先 sudo apt-get update 更新一下不然很可能安装依赖会有问题.
然后安装依赖:
sudo apt-get install libeigen3-dev
sudo apt-get install libboost-all-dev
sudo apt-get install libflann-dev
sudo apt-get install libvtk5-dev
下载PCL1.8.1 ,我这里用的1.8.1 版本也是参考树霉派, 对于pcl版本和依赖库版本问题我还比较疑惑;
下载PCL1.8.1后找到cmake 文件夹中的pcl_find_sse.cmake 文件,
找到第19行:
SET(SSE_FLAGS "${SSE_FLAGS} -march=native")
将:
-march=native
改为:
-march=armv8 -mfloat-abi=hard -mfpu=vfp
香橙派的Cortex-A72(大核)+四核Cortex-A53 是v8 结构.
然后开始安装pcl:
cd pcl-1.8.1
sudo mkdir build && cd build
sudo cmake ..
sudo make
sudo make install
要等待好几个小时, 下班前make, 隔天就编译好了.