ROS2入门教程-colcon build使用
说明
- 介绍如何编译包
命令
- 假设工作空间位于 ~/ros2_ws,包含多个包
tree ~/ros2_ws/
├── build # 编译时自动生成,包含编译的中间文件
├── install # 编译时自动生成,包含编译的结果:可执行文件,库文件,message 头文件等
├── log # 编译时的日志,方便在编译失败时查找问题(ros2 新增)
└── src
├── package1 # 功能包
├── package2
├── package3
- 编译整个工作空间
- 最基本命令,默认是选用 ninja 作为构建方式并且使用 8线程 进行代码的编译。
- 编译的结果在install文件夹中是以 package 为单位存放的,这个与 catkin_make_isolated 作用类似
colcon build
- 编译工作空间,并建立软连接,可以让launch修改不必重新编译
colcon build --symlink-install
- 编译工作空间某个包
colcon build --symlink-install --packages-select packages1
- 编译工作空间多个包
- --packages-select后多个包空格分隔不同包
colcon build --symlink-install --packages-select packages1 packages2 packages3
- 编译工作空间使用单线程,对于性能低的上位机可以采用,避免系统卡死
colcon build --symlink-install --executor sequential
- 编译工作空间使用多线程
colcon build --symlink-install --parallel-workers 5
- 编译某个包,如果依赖其他包一起安装。
- 假设packages2依赖packages1
colcon build --packages-up-to packages2
那么packages1会一起安装
- 忽略某个包
编译除了忽略的包外的其他所有
同样也可以在 package 目录下创建 COLCON_IGNORE 空文件以忽略编译
colcon build --packages-ignore packages2
- 清除已有的编译缓存
colcon build --cmake-clean-cache
编译完成后会生成三个文件夹install, build, log。
如果不加--cmake-clean-cache参数,系统如果发现在三个文件夹中有相关包的信息,则会跳过这个包的重新编译。
- 合并安装
是将编译的结果进行合并安装,比如头文件都放在 install/include 目录下, 库文件都放在 install/lib 文件夹下等
colcon build --merge-install
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号