当前位置: 首页 > news >正文

[具身智能-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 适合机器人日常开发调试。

http://www.jsqmd.com/news/1315146/

相关文章:

  • AIGC电商实战班:即梦+SD+豆包直出详情页,扫地机洗发水猫粮多品类可复现
  • 单片机毕设项目:基于 51/STM32 单片机的多档位调光人体感应台灯实现 基于光敏电阻采集的自动调光人体感应台灯控制系统(021401)
  • 抖音批量下载终极指南:5分钟掌握douyin-downloader高效使用技巧
  • 315MHz RF Kit入门指南:从无线通信原理到Arduino实战应用
  • 从ELK剑魔爆砍蒙多解析英雄克制:版本答案与玩家认知的博弈
  • UE4蓝图动态加载实战:从路径获取到实例化的完整指南与避坑
  • 做直播该选哪种云端方案?云直播、数字人录播、超级直播间一次讲清
  • 回收老家具筑牢核心优势 北京丰宝斋全品类布局树立文玩回收行业 - 品牌排行榜单
  • 2026深圳搬家全套干货清单:费用明细、签约避坑、维权指南(行业权威标准) - 深圳顺风搬迁
  • 在reComputer上使用uv:ARM架构Python包管理的极速解决方案
  • Mem0 生产级部署实战:从架构设计到K8s高可用落地的万字指南
  • 31个功能!Switch游戏文件终极管理工具NSC_BUILDER完整指南
  • 视频资源下载终极指南:3分钟掌握全网资源免费下载技巧
  • 8 月 1 日每日总结
  • 法向量方向的“自由意志“:为什么“约定“重于“绝对“
  • 多肽药物发现:从水解稳定性到活性与安全性预测的完整计算筛选流程
  • 通义千问+钉钉宜搭+审批流AI增强实战(含RAG微调参数表与敏感字段脱敏SDK)
  • MT3620 Grove扩展板设计:连接Azure Sphere与传感器生态的硬件桥梁
  • 如何快速掌握CS2_External:面向新手的终极配置与实战指南
  • CNN-LSTM模型在煤矿瓦斯浓度预测中的实战应用
  • 2026安徽阜阳市中考分数低怕没出路?高科宠物护理校企定向入职大型连锁医院!怎么报名?在哪报名?联系方式多少? - 最新资讯
  • Grove五向开关硬件解析与驱动实战:从数字型到I2C版本
  • AI API聚合平台Fable 5复活:开发者如何应对API访问壁垒与成本控制
  • 最小可运行示例:用一条 curl 完成网站测速诊断全链路检查
  • 【RA-Eco-RA2T1开发板】心率监测仪
  • 854637
  • 独角兽成交大师营
  • 阅读理解得分卡在22/30?这6个AI辅导盲区正在悄悄拖垮你的提分曲线
  • DeepMind AGI路线图解析:四条路径与六大技术关卡
  • Grove三色电子墨水屏入门指南:从原理到Arduino实战应用