# ROS2 colcon build 如何限制线程数

> 原文链接：https://robotics.hellobike.com/pitfalls/2024-02-01-robotics-se-97896
> 频道：pitfalls | 更新日期：2024-02-01 | 标签：auto, stackexchange, ros, ros2, colcon
> 核心摘要：ROS2 中 colcon build 需分别限制并行包数和单包 make 线程数。

# ROS2 colcon build 如何限制线程数

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[colcon build - number of threads](https://robotics.stackexchange.com/questions/97896/colcon-build-number-of-threads)（Robotics Stack Exchange #97896）

**状态**：已解决

## 问题

提问者想在 ROS2 的 `colcon build` 过程中定义线程数；以前构建工具使用 `-j {number_of_threads}`，但现在不再适用。

## 环境

ROS2；`colcon build`；`colcon-cmake`；`make`；评论提到 Raspberry Pi 4。

## 解决办法

1. 用 `--parallel-workers NUMBER` 限制并行处理的包数量。
2. 或用 `--executor sequential` 选择顺序执行器，将并行包数限制为 1。
3. 用环境变量 `MAKEFLAGS` 控制单个包的 `make` 线程数，例如 `export MAKEFLAGS="-j 4"`。
4. 注意总体线程数是并行包数与每包最大线程数的乘积；Raspberry Pi 4 上有人通过添加 `--executor sequential` 避免崩溃。

原问题作者：Pablo I&#241;igo Blasco；采纳答案作者：Dirk Thomas。原内容依 CC BY-SA 4.0 授权，本页摘要同样依 CC BY-SA 4.0 授权。
:::

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #97896：colcon build - number of threads](https://robotics.stackexchange.com/questions/97896/colcon-build-number-of-threads)