ROS------Catkin编译系统

(1)产生:

之前在学校学校学习的时候,在Linux下习惯通过gcc g++生成makefile来编译文件,但接触了大型项目随着代码量的增多,便接触了更高层次的Cmake工具,加上ROS对Cmake的扩展,便出现了catkin编译工具。

(2)优点:

软件包编译后无需安装就可使用;
自动生成find_package()代码,pkg-config文件;
解决了多个软件包构建顺序问题;
一次配置,多次使用;

(3)编译的工作流程

在工作空间uos/src/下递归查找其中每一个ROS的package
在这里插入图片描述
Catkin(CMake)编译系统依据CMakeLists.txt文件,从而生成makefiles(放在catkin_ws/build/)。
在这里插入图片描述
然后make刚刚生成的makefiles等文件,编译链接生成可执行文件(放在catkin_ws/devel)。
在这里插入图片描述
所以说,Catkin就是将cmake与make指令做了一个封装从而完成整个编译过程的工具。

(4)使用catkin_make进行编译

调用系统自动完成编译和链接过程,构建生成目标文件。
$ cd ~/uos #回到工作空间,catkin_make必须在工作空间下执行
$ catkin_make #开始编译 须在工作空间目录
$ source ~/uos/devel/setup.bash #刷新坏境

(5)初始化catkin工作空间

$ mkdir -p ~/uos/src  直接创建了第二层文件夹src(放ROS软件包的地方)
$ cd ~/uos/ 进入工作空间
$ catkin_make #初始化工作空间

(6)catkin空间结构

src/: ROS的catkin软件包(源代码包)
build/: catkin(CMake)的缓存信息和中间文件
devel/: 生成的目标文件(包括头文件,动态链接库,静态链接库,可执行文件等)、环境变量

ROS------Catkin编译系统_第1张图片

你可能感兴趣的:(Linux)