catkin编译系统
对于源代码包,我们只有编译才能在系统上运行。而Linux下的编译器有gcc、g++,随着源文件的增加,直接用gcc/g++命令的方式显得效率低下,人们开始用Makefile来进行编译,随着工程体量的增大,ROS对CMake进行了扩展,于是便有了Catkin编译系统。
解决:
功能包在使用时,需要拷到自己工作空间,安装好依赖后,编译即可。
安装 rosdep 后,在“工作空间”下运行以下命令安装绝大部分
一键安装依赖命令:
rosdep install --from-paths src --ignore-src -r -y
安装一些 rosdep 遗漏的依赖:
ROS包相关依赖:
编译报错时,后面如带 msgs 的都是 ROS 相关依赖没有,需要安装
单独安装一些功能包&依赖命令:
sudo apt-get install ros-melodic-xxxx*
注:melodic 是ROS1在ubuntu18.04系统版本下的版本号,要选中自己对应的版本号。
xxxx* 是你所缺失的功能包或依赖,make编译报错会显示你缺失的东西。
- 查看自己版本号的方法:
在linux系统打开”opt/ros“这个路径下的文件夹就是你的版本号
在linux终端输入命令rosversion -d
也会输入你的版本号
系统相关依赖包:
报错时,遇到没有带msgs消息包格式的缺失依赖报错信息,大概率是系统依赖欠缺,也需要安装。
sudo apt-get install xxx*
单独编译功能包
我们知道用catkin_make会编译整个工作空间,但是有些ROS包需要其他编译完的ROS包的支持,所以要先编译一些功能包,再编译整个工作空间。
单独编译一个功能包
catkin_make --pkg xxx
注:xxx 是功能包的名字