[具身智能-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 个文件夹:
- build/:编译中间文件、CMake 缓存
- install/:最终编译产物(可执行程序、launch、消息接口)
- log/:编译日志,排查报错
工作流程: 扫描src下所有 ROS 包 → 自动分析包之间依赖顺序 → 逐个编译 → 输出到 install 目录。
3. 关键特性(对比旧版 catkin)
- 支持多构建系统同时支持:
ament_python(Python 包)、CMake(C++ 包); - 并行编译、依赖自动排序;
- 可以选择性编译单个包,不用全量编译;
- 分离编译产物,不容易出现旧文件缓存污染。
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 log5. 编译完成后必须执行
bash
运行
source install/setup.bash作用:把install下程序路径导入终端环境,让系统能找到你的 ROS2 节点。
6. 常见边界认知
- ❌不能在 src 文件夹执行 colcon build,必须在 workspace 根目录
- ❌ colcon 不是编译器,它是编译调度工具,底层依然调用 gcc、cmake、python
- ❌ colcon 不会自动刷新终端环境,新开终端都要 source
- ✅ 支持 Humble / Jazzy 所有 ROS2 发行版,通用
7. 极简总结一句话
colcon build是 ROS2 官方工具,自动扫描 src 内所有功能包,按依赖顺序编译代码,生成可运行程序;搭配 --symlink-install 适合机器人日常开发调试。
