编译ORB_SLAM2遇到问题:virtual memory exhausted: Cannot allocate memory,解决方法是临时增大swap分区。
参考:
ORB SLAM2 ROS单目摄像头环境搭建
Ubuntu 修改交 swap 分区的大小
【Linux 问题记录】(2)内存不足
First,注意到ORB_SLAM2/build.sh中make命令是make -j
-j [<jobsnum>]
或者--jobs[=<jobsnum>]
指同时运行命令的个数。如果没有这个参数,make运行命令时能运行多少就运行多少。如果有一个以上的“-j”参数,那么仅最后一个“-j”才是有效的。如果同时运行的命令太多,就容易将内存耗尽。
下面是修改swap分区的方法:
mkdir swap #创建一个目录放swapfile
cd swap
sudo dd if=/dev/zero of=swapfile bs=1M count=2k #创建swapflie,size = bs * count
sudo mkswap swapfile #设置swapfile
sudo swapon swapfile #挂载
free -m #查看
#临时swapfile用完之后
sudo swapoff swapfile
cd
sudo rm -rf swap