2021-09-02 关于roscatkin的理解

关于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包如果要依赖当前包的话需要引入哪些东西 第三:通过源文件生成其他文件。

猜你喜欢

转载自blog.csdn.net/m0_46505453/article/details/120054700