ROS下配置编译规则和自定义通信数据接口

配置编译规则

  • CMakeLists.txt
    • 什么是Cmake?
    • ROS下注意事项
  • package.xml
  • 自定义通信数据接口
    • 话题通信
    • 服务通信

CMakeLists.txt

什么是Cmake?

CMake 是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的 Makefile 或者 project 文件,CMake 并不直接建构出最终的软件,而是产生标准的建构档(如 Makefile 或 projects)。

ROS下注意事项

由于在创建功能包时,已经生成了CMakeLists.txt文件,这就不必我们再自己创建,但是由于有写了新的代码(那肯定,不然创建功能包的意义何在?),得更新或是添加Cmake文件中的某些依赖和链接库;

#设置需要编译的代码和生成的可执行文件;
add_executable(string_publisher src/string_publisher.cpp)
#设置链接库
target_link_libraries(string_publisher ${catkin_LIBRARIES})

package.xml

描述功能包的属性,包括功能包的名字、版本号、作者、维护者、通行证 以及所依赖的功能包。

<name> - 功能包的名字
<version> -功能包的版本
<description> - 功能包内容的描述
<maintainer> - 功能包的创建于维护者
<license> - 软件发行版通行证 (例如: GPL, BSD, ASL)

功能包的依赖(4种):

<buildtool_depend> - 指定编译此功能包的编译系统工具

<build_depend> - 指定编译此功能包需要的其他功能包,可以是功能包中的头文件、链接库、其他源文件。 

<run_depend> - 指定运行此功能包代码需要的其他功能包。

<test_depend> - 指定单元测试需要的其他功能包

自定义通信数据接口

分为话题通信(.msg) 和 服务通信(.srv)

话题通信

ROS下配置编译规则和自定义通信数据接口_第1张图片

服务通信

ROS下配置编译规则和自定义通信数据接口_第2张图片
在自定义通信接口时,需要在package.xml中添加功能包的依赖;
并且在CMakeLists.txt也添加message_runtime的依赖项。

你可能感兴趣的:(ROS,linux,c++)