2021-09-02 关于roscatkin的理解

本文介绍了catkin作为ROS构建系统的基础,它是基于cmake的,并添加了特定的宏来处理ROS特定的任务,如消息和服务的生成。在cmake配置文件中,通常包括设置版本、声明项目、查找依赖、处理python支持、定义消息/服务以及指示其他包如何依赖当前包。catkin_package()宏是关键,用于告知依赖包如何导入所需资源。理解catkin和cmake的工作原理需要熟悉C++的编译链接过程,以及cmake的各个命令作用。

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

关于catkin的一些理解

基础

总的来说,catkin沿袭了cmake的语言风格,在基础上添加了一些特有的宏。特有的宏一般用来生成特定的消息和服务,这个可以用到的时候再去了解,不用多想。在一个cmake.txt文件中,一般会有如下的命令顺序:

  • 版本说明:cmake_minimum_required()
  • 软件包名:project()
  • 查找编译依赖的其他catkin/cmake包: find_package()
  • python模块支持:catkin_python_package()
  • 消息/服务生成:用到时候再看就行(先add 再generate)
  • 重点,给其他包指示如果依赖当前编写cmake所指向的包时应该如何做 catkin_package()(也就是你写的其他包需要当前编写的这个包的一些东西,这一段也就是告诉其他包应该导入哪些东西,因为当前包已经导入了一大堆的外部包,举例说明,如果当前包依赖boost,如果不在这个地方声明的话,那么其他包在引入当前包的时候必须在find_package里面自己导入boost,同样的,有一些包在导入后的前缀和后缀都会发生一些变化,必须在这个地方声明参考这个链接
  • 指定要生成的东西(可以是库 动态 静态 共享)也可以是可执行文件 add_library()/add_executable()/target_link_libraries()

个人理解

要想搞懂cmake或者catkin到底干了什么,首先必须需要一定的c++基础。尤其是编译链接这一块儿需要拿捏清楚。其次你需要明确cmake各个部分到底干了什么。如上文所言,cmake其实是干了三件事情:第一:为你当前的编译去寻找依赖的组件 第二:告诉其他的ros包如果要依赖当前包的话需要引入哪些东西 第三:通过源文件生成其他文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

attense

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值