常用的 colcon build 参数
819 字
4 分钟
常用的 colcon build 参数
colcon build 是 ROS 2 中用来构建工作空间的核心命令。下面按用途分类,介绍最常用的一些参数。
1 安装方式
--symlink-install
使用符号链接安装文件,而不是复制。当你修改了 Python 脚本、配置文件或 launch 文件时,无需重新构建就能直接生效(对 Python 包、配置文件、launch 文件这类“改动频繁”的内容特别方便,但 C++ 代码仍需重新编译)。开发调试时常用。--merge-install
将所有包安装到同一个install/目录下(类似 ROS 1 的结构),而不是默认的install/<pkg_name>。某些场景下可以简化环境变量设置,不过通常推荐独立安装方式。
2 包选择
--packages-select
只构建指定的几个包,不处理其他包。--packages-up-to
构建指定包以及它的所有递归依赖包。适合你只关心某个包和它依赖的包链。--packages-above
构建所有直接或间接依赖于指定包的包(反向依赖)。用于检查改动影响哪些下游包。--packages-skip
跳过指定包不构建,但其他包仍正常构建。
3 构建过程控制
--continue-on-error
即便某个包构建失败,也继续构建其他包,便于一次性发现问题包。--executor sequential
强制顺序构建(默认会并行构建),方便调试依赖问题或排查编译顺序。--parallel-workers N
限制并行构建的任务数,避免资源紧张,例如--parallel-workers 4。--cmake-args
将参数直接传递给 CMake,如:
--cmake-args -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-O2"--ament-cmake-args
将参数传递给ament_cmake构建系统(ROS 2 专用),用法同上。--cmake-clean-cache
删除之前的 CMake 缓存,重新从头配置,相当于强制 clean 配置。--cmake-force-configure
即使缓存存在,也强制重新运行 CMake 配置步骤。--allow-overriding
改变某个包的构建类型(例如把一个原本用ament_cmake的包强制当成纯cmake包来构建),在混用不同构建系统时有用。
4 输出与事件处理
-
--event-handlers
控制终端输出和通知行为。常用值:console_direct+:直接在终端实时打印所有包的编译输出(不缓冲)。console_cohesion+:每个包输出聚合显示(默认之一)。desktop_notification-:关闭桌面通知(构建完成/失败的通知)。
示例:--event-handlers console_direct+
5 测试相关
--build-tests
在构建过程中同时编译测试代码,后续才能运行colcon test。
也可以直接用 CMake 参数开启:--cmake-args -DBUILD_TESTING=ON。
6 工作空间路径
--build-base
指定构建中间文件存放目录,默认为工作空间下的build/。--install-base
指定最终安装文件的存放目录,默认为install/。--paths
指定包含 ROS 包的源代码目录,默认为src/,如果你的包放在别处可以用它指定。
7 其他
--metas
使用一个元信息文件(meta file)来统一覆盖某些包的编译选项,适合复杂的混合工作空间。
8 常见场景示例
- 日常开发最常用
colcon build --symlink-install --packages-select my_package - 重新全量构建(清除缓存)
colcon build --cmake-clean-cache --cmake-force-configure - 只构建某个包及其依赖,并实时查看输出
colcon build --packages-up-to my_package --event-handlers console_direct+ - 以 Release 模式编译
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
掌握这些参数基本就能覆盖绝大部分开发和集成场景了。
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
常用的 colcon build 参数
https://bill.is-a.dev/posts/colcon-build-parameters/ 相关文章 智能推荐
1
cargo install 的一些杂项
开发工具 cargo install 的常用命令,以及 cargo-binstall 和 cargo-update 等辅助工具的用法。
2
使用 GCMP 在 VS Code Copilot 中接入 DeepSeek API
开发工具 介绍如何通过 GCMP 扩展在 VS Code Copilot Chat 中接入 DeepSeek API,实现使用国产大模型进行 AI 编程。
3
Git Submodule 命令
开发工具 Git Submodule 常用命令与配置详解,包括添加、克隆、更新、删除等操作及配置文件说明。
4
使用 pnpm 管理 node 运行环境
开发工具 使用 pnpm 的 runtime 命令管理 Node.js 运行环境,包括安装不同版本和项目级配置说明。
5
在 Ubuntu 上使用 Git Credential Manager(GCM)实现认证
系统配置 在 Ubuntu 上从 GitHub Release 下载安装 Git Credential Manager(GCM),配置其使用 Seahorse(GNOME Keyring)作为凭证存储后端,实现访问私有仓库时通过浏览器完成登录认证。
随机文章 随机推荐