[ROS官方教程] catkin/CMakeLists.txt的使用

本文详细介绍了ROS项目中catkin CMakeLists.txt的使用,涵盖CMake版本要求、功能包命名、依赖包查找、catkin_package()、编译目标设定、消息服务动作处理、Python模块支持及单元测试等内容,旨在帮助开发者理解并正确配置ROS项目。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 概述

CMakeLists.txt文件是CMake编译系统的输入,描述如何编译代码和安装。用于catkin项目的CMakeLists.txt在原始的CMakeLists.txt基础上添加了一点额外约束。

2 整体结构和顺序

CMakeLists.txt文件的格式和顺序十分重要,包括如下:

  1. CMake版本 (cmake_minimum_required())
  2. 功能包名称 (project())
  3. 发现编译需要的CMake/Catkin包 (find_package())
  4. Python模块支持 (catkin_python_setup())
  5. 添加Message/Service/Action (add_message_files(), add_service_files(), add_action_files())
  6. 生成Message/Service/Action (generate_messages())
  7. 功能包编译信息导出 (catkin_package())
  8. 库/可执行文件 (add_library() / add_executable() / target_link_libraries())
  9. 测试 (catkin_add_gtest())
  10. 安装 (install())

3 CMake版本

catkin需要2.8.3+

cmake_minimum_required(VERSION 2.8.3)

4 功能包名称(package name)

通过CMake project指定,

project(robot_brain)

在CMake中,可以通过${PROJECT_NAME}引用这个package name。

5 发现CMake Packages

使用find_package函数,发现编译该项目所依赖的CMake packages。至少有一个catkin依赖:

find_package(catkin REQUIRED)

如果该项目还依赖其他packages, 这些package会自动转变为catkin的components。如果直接指定这些packages作为components,而不是用find_package,会更为简单。比如,使用nodelet

find_package(catkin REQUIRED COMPONENTS nodelet)

注意:此处components只添加build dependencies, 而没有 runtime dependencies

也可以这样做,但是比较麻烦:

find_package(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值