树莓派工程文件编译过程

本文记录了在树莓派上编译ROS工程的步骤,包括将工程文件复制到树莓派,使用catkin_make进行编译。遇到的问题包括缺失库(tf2_geometry_msgs)和编译时因swap空间不足导致的卡死。解决方案是安装缺失库和增加swap交换空间。详细步骤包括创建和设置swap文件,修改fstab文件以在启动时自动启用。
摘要由CSDN通过智能技术生成

零. 树莓派编译

记录编译过程的方法和一些问题

一. 已有工程文件拷贝至树莓派

1. 已有工程文件拷贝至树莓派

根据自身所做项目,拷贝工程文件到树莓派,注意文件路径,文件夹名称等。

2. 编译

进入工程文件夹,编译

catkin_make -j8

(1)问题:Could not find the required component ‘tf2_geometry_msgs‘. The following CMake error indicates that…
原因:缺少库
解决:安装库

sudo apt install ros-kinetic-tf2-geometry-msgs

指令撰写规则
①kinetic:如果是ros的其他版本,只需要将kinetic换成你的版本即可
②包名:注意要把包名中的 _ 换成 - ,其他包类似。
(2)问题:编译的时候卡死
原因:树莓派的swap交换空间不够
解决:
①确保系统中有足够的空间来用做swap交换空间,在/opt/image中添加2G的swap交换文件

cd /opt
sudo mkdir image
cd image
sudo touch swap    #创建文件
sudo dd if=/dev/zero of=/opt/image/swap bs=1024 count=2048000

添加交换文件并设置为2G(也可以设置为1G),运行此命令会等待几分钟后返回:

1024000+0 records in
1024000+0 records out
大小 copied, 所用时间 s, 速度 MB/s

②创建(设置)交换空间,使用命令mkswap

sudo mkswap /opt/image/swap

返回:

Setting up swapspace version 1, size = 2 GiB (2097147904 bytes)

③检查现有的交换空间大小,使用命令free

free -m

返回:

              total        used        free      shared  buff/cache   available
Mem:            925         185          28          14         711         660
Swap:             0           0           0

或者检查meminfo文件

grep SwapTotal  /proc/meminfo

④启动新增加的2G的交换空间,使用命令swapon

sudo swapon /opt/image/swap

⑤检查现有的交换空间大小,使用命令free

free -m

返回:

              total        used        free      shared  buff/cache   available
Mem:            925         185          28          14         711         660
Swap:             0           0           0

或者检查meminfo文件

grep SwapTotal  /proc/meminfo

⑥修改/etc/fstab文件,使得新加的2G交换空间在系统重新启动后自动生效

sudo gedit /etc/fstab  #也可以将gedit换成vim

在文件最后加入:

/opt/image/swap    /swap    swap    defaults 0 0

重启之后再次编译,成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值