Ros 文件系统
编译系统
一个Catkin的软件包(package)必须要包括两个文件:
-
package.xml: 包括了package的描述信息
- name, description, version, maintainer(s), license
- opt. authors, url's, dependencies, plugins, etc...
-
CMakeLists.txt: 构建package所需的CMake文件
- 调用Catkin的函数/宏
- 解析
package.xml
- 找到其他依赖的catkin软件包
- 将本软件包添加到环境变量
catkin编译的工作流程如下:
- 首先在工作空间
catkin_ws/src/
下递归的查找其中每一个ROS的package。 - package中会有
package.xml
和CMakeLists.txt
文件,Catkin(CMake)编译系统依据CMakeLists.txt
文件,从而生成makefiles
(放在catkin_ws/build/
)。 - 然后
make
刚刚生成的makefiles
等文件,编译链接生成可执行文件(放在catkin_ws/devel
)。
也就是说,Catkin就是将cmake
与make
指令做了一个封装从而完成整个编译过程的工具。
Catkin 工作空间
- src/: ROS的catkin软件包(源代码包)(我们写的ROS程序、网上下载的ROS源代码包都存放在这里)
- build/: catkin(CMake)的缓存信息和中间文件
- devel/: 生成的目标文件(包括头文件,动态链接库,静态链接库,可执行文件等)、环境变量