探讨ros下的cmakelists文件的编写

本文详细解析了CMakeLists.txt文件的结构与功能,包括CMake版本声明、项目定义、包依赖查找、消息生成器使用及构建规则设定等关键环节,为ROS开发者提供了一份实用指南。

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

cmakelists文件整体架构

所需CMake版本(cmake_minimum_required)

     软件包名称(project())

     查找构建所需的其他CMake / Catkin软件包(find_package())

     启用Python模块支持(catkin_python_setup())

     消息/服务/动作生成器(add_message_files(),add_service_files(),add_action_files())

     调用消息/服务/动作生成(generate_messages())

     指定package build info export(catkin_package())

     要建立的库/可执行文件(add_library()/ add_executable()/ target_link_libraries())

     测试建立(catkin_add_gtest())

     安装规则(install())
  • 注:CMakeLists.txt文件必须遵循此格式且按照配置的顺序进行,否则您的包将无法正确构建。

分块讲解

1.CMake版本

cmake_minimum_required(VERSION 2.8.3)
  • 每个catkin CMakeLists.txt文件必须以需要的CMake版本开始。 Catkin需要2.8.3或更高版本。

2.软件包名称

project(robot_brain)
  • 所使用的项目名是由CMake项目功能指定的包的名称

3.查找相关的CMake包

find_package(catkin REQUIRED)
  • 需要使用CMake的find_package()函数指定需要找到哪些其他CMake包来构建我们的项目
  • 但是至少有一个依赖于catkin:
  • 若所需多个依赖包:
find_package(catkin REQUIRED)
find_package(roscpp REQUIRED)
find_package(rospy REQUIRED)
find_package(std_msgs REQUIRED)

也可以写成

find_package(catkin REQUIRED COMPONENTS
  roscpp
  rospy
  std_msgs
)
  • 如果要使用 C++ 和Boost,则需要引用 find_package 包含 Boost,并且指明 Boost 的类型,如使用 Boost threads,则:
find_package(Boost REQUIRED COMPONENTS thread)

4.消息/服务/动作生成器

find_package(catkin REQUIRED COMPONENTS ...)
 add_message_files(...)
 add_service_files(...)
 add_action_files(...)
 generate_messages(...)
 catkin_package(...)
 ...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值