# colcon build: CMake错误在CMakeLists.txt: 找不到catkin包

- **ID:** `ros2/colcon-build-catkin-package-not-found`
- **领域:** ros2
- **类别:** build_error
- **验证级别:** ai_generated
- **修复率:** 85%

## 根因

在ROS2工作空间中构建ROS1(catkin)包，但catkin不可用或工作空间未配置为混合构建。

## 版本兼容性

| 版本 | 状态 | 引入 | 弃用 |
|------|------|------|------|
| ROS2 Humble (Ubuntu 22.04) | active | — | — |
| ROS2 Iron (Ubuntu 22.04) | active | — | — |
| ROS2 Rolling (Ubuntu 24.04) | active | — | — |

## 解决方案

1. ```
   从工作空间中移除catkin包，或将其迁移到ament_cmake。如果需要ROS1兼容性，请使用单独的catkin工作空间，并在构建ROS2工作空间前source它。
   ```
2. ```
   使用colcon的--merge-install或--cmake-args包含catkin工作空间：colcon build --cmake-args -DCATKIN_DEVEL_PREFIX=/path/to/catkin_ws/devel
   ```

## 无效尝试

- **Install catkin via apt and rebuild** — catkin is not a ROS2 package; even if installed, colcon won't find it without ROS1 bridge setup. (90% 失败率)
- **Manually set CMAKE_PREFIX_PATH to catkin workspace** — colcon ignores manual CMAKE_PREFIX_PATH overrides for workspace isolation. (85% 失败率)
