[具身智能-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 log
5. 编译完成后必须执行
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 适合机器人日常开发调试。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)