ros工作空间中文件夹结构及每个文件的作用
CMAKE编译配置工具
ROS 编译系统 catkin 详解
ros系统学习之Catkin编译系统
ROS--catkin编译系统、package.xml和CMakeList.txt文件
1、build:编译空间
存放CMake和catkin(即编译过程)的缓存信息、配置信息和其他中间文件。
2、devel:开发空间
存放编译后生成的目标文件,包括头文件、动态&静态链接库、可执行文件等。
3、src:源空间
存放功能包(package)。
功能包是ROS文件系统中组织程序文件的基本单元,也就是catkin编译的基本单元。一个 package 下必须包含 CMakeLists.txt 和 package.xml 两个文件:
- CMakeLists.txt 文件中规定了功能包的编译规则,包括指定功能包名称,指定编译依赖项,指定要编译的源文件,指定要添加的消息格式文件/服务格式文件/动作格式文件,指定生成的消息/服务/动作,指定头文件搜索目录,指定链接库搜索目录,指定生成的静态链接库文件,指定需要链接的库文件,指定编译生成的可执行文件以及路径等等。
关于CMakeLists.txt详细内容:CMakeList.txt(构建配置文件) - package.xml 文件定义了功能包的属性信息,包括包名,版本号,作者,编译依赖和运行依赖等。
package.xml 文件,指明该 package 在编译和运行时依赖于哪些其他 package,同时也包含该 package 的一些描述信息,如作者、版本等。
关于XML语言格式:XML学习笔记
关于package.xml详细内容请:package.xml(功能包配置文件)
- include 和 src 分别存放头文件(*.h)和源程序文件(*.c/*.cpp等);
- scripts 存放脚本文件(比如Python文件 *.py,shell文件 *.sh);
- launch 存放 launch文件(*.launch),用于批量运行多个可执行文件;
- config 存放配置文件(*.yaml等);
- msg以及srv存放自定义的通信格式文件,包括消息(*.msg)、服务(*.srv)
- urdf 存放定义机器人模型文件(*.urdf)
4、install:安装空间
即开发完成后的安装包。
我们向往远方,却忽略了此刻的美丽