[具身智能-714]:colcon build 是 ROS2 官方工具,自动扫描 src 内所有功能包,按依赖顺序编译代码,生成可运行程序;搭配 --symlink-install 适合机器人日常开发

📅 2026/8/2 18:55:09 👁️ 阅读次数 📝 编程学习
[具身智能-714]:colcon build 是 ROS2 官方工具,自动扫描 src 内所有功能包,按依赖顺序编译代码,生成可运行程序;搭配 --symlink-install 适合机器人日常开发

colcon build 完整概述(ROS2 专用,通俗易懂)

1. 它是什么

colcon=Collective Construction(集合构建工具)

  • ROS2 官方标准编译构建系统;
  • 前身是 ROS1 的catkin_make/catkin build
  • 作用:一次性编译工作空间内多个 ROS 软件包(package)

ROS1:catkin ROS2:colcon

2. 核心工作原理

在 ROS2 工作空间(workspace)结构:

plaintext

workspace_ws └── src/ # 存放所有源码包

执行colcon build后,自动在 ws 根目录生成 3 个文件夹:

  1. build/:编译中间文件、CMake 缓存
  2. install/:最终编译产物(可执行程序、launch、消息接口)
  3. log/:编译日志,排查报错

工作流程: 扫描src下所有 ROS 包 → 自动分析包之间依赖顺序 → 逐个编译 → 输出到 install 目录。

3. 关键特性(对比旧版 catkin)

  1. 支持多构建系统同时支持:ament_python(Python 包)、CMake(C++ 包);
  2. 并行编译、依赖自动排序
  3. 可以选择性编译单个包,不用全量编译;
  4. 分离编译产物,不容易出现旧文件缓存污染。

4. 最重要参数详解

bash

运行

# 基础编译 colcon build # 开发首选:--symlink-install 软链接安装 colcon build --symlink-install

--symlink-install 意义对 Python 脚本、launch 文件、yaml 配置创建软链接。 👉 修改源码里 launch / 脚本,不需要重新编译,直接生效; C++ 代码改动依然需要重新编译。

bash

运行

# 只编译指定包(提速) colcon build --packages-select 包名 # 清空旧编译文件(解决缓存异常) rm -rf build install log

5. 编译完成后必须执行

bash

运行

source install/setup.bash

作用:把install下程序路径导入终端环境,让系统能找到你的 ROS2 节点。

6. 常见边界认知

  1. 不能在 src 文件夹执行 colcon build,必须在 workspace 根目录
  2. ❌ colcon 不是编译器,它是编译调度工具,底层依然调用 gcc、cmake、python
  3. ❌ colcon 不会自动刷新终端环境,新开终端都要 source
  4. ✅ 支持 Humble / Jazzy 所有 ROS2 发行版,通用

7. 极简总结一句话

colcon build是 ROS2 官方工具,自动扫描 src 内所有功能包,按依赖顺序编译代码,生成可运行程序;搭配 --symlink-install 适合机器人日常开发调试。