1、编译卡死的原因
进行colcon build编译时,系统默认采用并行编译,若文件量大,对系统的内存和CPU资源要求较高,容易出现卡死的问题。
2、解决方法:
1、关闭其他应用:关闭其他占用大量资源的程序,释放系统资源
2、调整并行编译时的核数
(1)查看CPU内核个数
nproc
(2)若你的内核个数为16,则选择更低的内核数编译或顺序编译
colcon build --parallel-workers 8 # 使用8个内核
colcon build --executor sequential # 不使用并行而是顺序编译
3、若更改编译方式,仍出现卡死情况,增大交换空间
(1)查看swap分区
free -h
若显示交换,则存在交换空间
(2)创建交换区文件,大小根据实际情况选择
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 # 1 * 2048 = 2048 创建2G的内存分区
注:若运行此命令时出现报错:dd: 打开 '/swapfile' 失败: 文本文件忙
运行命令:sudo swapoff -a即可解决
sudo swapoff -a
(3)转化交换格式
sudo mkswap /swapfile
(4)设置交换文件权限
sudo chmod 600 /swapfile
(5)启用交换文件
sudo swapon -a /swapfile
若显示,swapon: /swapfile:swapon 失败: 设备或资源忙,先关闭交换文件,再启用
(6)关闭交换文件
sudo swapoff -a /swapfile