< >
Home » ROS2入门教程 » ROS2入门教程-colcon build使用

ROS2入门教程-colcon build使用

说明

  • 介绍如何编译包

命令

  • 假设工作空间位于 ~/ros2_ws,包含多个包
tree ~/ros2_ws/

├── build        # 编译时自动生成,包含编译的中间文件
├── install      # 编译时自动生成,包含编译的结果:可执行文件,库文件,message 头文件等
├── log          # 编译时的日志,方便在编译失败时查找问题(ros2 新增)
└── src
    ├── package1  # 功能包
    ├── package2
    ├── package3
    1. 编译整个工作空间
  • 最基本命令,默认是选用 ninja 作为构建方式并且使用 8线程 进行代码的编译。
  • 编译的结果在install文件夹中是以 package 为单位存放的,这个与 catkin_make_isolated 作用类似
colcon build 
    1. 编译工作空间,并建立软连接,可以让launch修改不必重新编译
colcon build --symlink-install
    1. 编译工作空间某个包
colcon build --symlink-install --packages-select packages1
    1. 编译工作空间多个包
  • --packages-select后多个包空格分隔不同包
colcon build --symlink-install --packages-select packages1 packages2 packages3
    1. 编译工作空间使用单线程,对于性能低的上位机可以采用,避免系统卡死
colcon build --symlink-install  --executor sequential
    1. 编译工作空间使用多线程
colcon build --symlink-install --parallel-workers 5
    1. 编译某个包,如果依赖其他包一起安装。
  • 假设packages2依赖packages1
colcon build --packages-up-to packages2
  • 那么packages1会一起安装

    1. 忽略某个包
  • 编译除了忽略的包外的其他所有

  • 同样也可以在 package 目录下创建 COLCON_IGNORE 空文件以忽略编译

colcon build --packages-ignore packages2
    1. 清除已有的编译缓存
colcon build --cmake-clean-cache 
  • 编译完成后会生成三个文件夹install, build, log。

  • 如果不加--cmake-clean-cache参数,系统如果发现在三个文件夹中有相关包的信息,则会跳过这个包的重新编译。

    1. 合并安装
  • 是将编译的结果进行合并安装,比如头文件都放在 install/include 目录下, 库文件都放在 install/lib 文件夹下等

colcon build --merge-install

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: ros2入门教程