ros2 基础学习04 -colcon构建工具

本文介绍了ROS中的colcon构建工具,它是catkin_make等工具的迭代升级,支持多种构建系统和工具。文章详细列出了colcon的命令行用法和与传统工具的区别,以及如何在ROS不同版本中使用它进行高效软件包构建。

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

一、colcon构建工具介绍

1.1 构建系统与构建工具

构建系统与构建工具区分点在于针对的对象不同,构建系统只针对一个单独的包进行构建,而构建工具重点在于按照依赖关系依次调用构建系统完成一系列功能包的构建。

1.2 构建系统

构建系统包括CMake、Python setuptools、catkin。

在这里插入图片描述
catkin基于CMake,并提供了一组方便的函数,使编写CMake包更容易。它自动生成 CMake 配置文件以及 pkg 配置文件。它还提供了注册不同类型测试的函数。python setuptools是用来创建和分发ROS的Python包。

1.3 构建工具

构建工具包括 catkin_make、catkin_make_isolated、python-catkin-tools、ament_tools、colcon。

在这里插入图片描述

  • catkin_make :由包含ROS 1构建系统的ROS软件包catkin提供。该构建工具仅调用CMake一次,并使用CMake的函数 add_subdirectory()在单一环境中处理所有软件包。

  • catkin_make_isolated:也是由包含ROS 1构建系统的ROS软件包catkin提供的。该构建工具是在catkin_make之后开发的,用于解决在单一CMake环境中构建多个软件包所涉及的问题。

  • catkin_tools:是由用于构建ROS 1软件包的独立Python软件包提供的。该构建工具是在- catkin_make / catkin_make_isolated之后开发的,用于并行构建多个软件包并提供显著的可用性改进。该构建工具支持构建CMake软件包并且单独构建这些软件包,以及支持跨软件包并行处理过程。

  • ament_tools是ament为早期ROS2提供的一种工具,可以让用户完成功能包的编译、测试、安装、卸载,而且它本身也是一个Python的功能包。

1.4 colcon构建工具

colcon 是一个构建软件包集合的命令行工具,是ros构建工具catkin_make、catkin_make_isolated、catkin_tools 和ament_tools的迭代版本,其设计目的是为了开发一款通用的软件包构建工具,可以依赖不同的构建工具(如catkin_cmake, ament_tool等),支持不同的构建系统(如catkin, ament等)。

ROS2Bouncy
版本之前的构建工具使用的是ament_tool,之后(foxy、Humble版本)的构建工具统一使用colcon。但ROS2默认是没有安装colcon的,需要单独安装。

常用命令速查

创建符号连接,每次调整 launch文件时都不必重新build,如果install的文件需要拷贝到另外的机器使用,不要使用这个参数,否则会找不到源文件。

colcon build --symlink-install

编译一个单独的包,但这个指令并不会编译该包的依赖,往往会报错。

colcon build --packages-select <name-of-pkg>

编译一个单独的包和其依赖编译

colcon build --packages-up-to <name-of-pkg>

编译时忽略指定包

colcon build --packages-ignore <name-of-pkg>

编译开启Debug模式

colcon build --cmake-args -DCMAKE_BUILD_TYPE=Debug

编译开启Release模式

colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release

编译一个package 并且把log 显示在屏幕上

colcon build --packages-select rmw_coredds_shared_cpp --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Debug --event-handlers=console_direct+

设置编译优化等级

colcon build --packages-select examples_rclcpp_minimal_action_client --symlink-install --cmake-args -DCMAKE_CXX_FLAGS='-o0 -ggdb' -DCMAKE_C_FLAGS='-o0 -ggdb'

colcon build --cmake-args -DCMAKE_CXX_FLAGS=“-O2 -g -Wall "
“-D” --宏定义,每定义一个就在前边加上”-D",给gcc传递参数,-g debug选项, gdb模式,符号表会保存,-s link选项,删除符号表,这一步会极大减少文件体积。

参考:

colcon docs:https://colcon.readthedocs.io/en/released/reference/verb/build.html
colcon PDF:https://buildmedia.readthedocs.org/media/pdf/colcon/released/colcon.pdf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小海聊智造

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

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

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

打赏作者

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

抵扣说明:

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

余额充值