# ranger_ros catkin build编译报错asio::posix::basic_stre。

> 原文链接：https://robotics.hellobike.com/pitfalls/2025-11-13-ranger-ros-20
> 频道：pitfalls | 更新日期：2025-11-13 | 标签：auto, github-issue, ranger_ros
> 核心摘要：ranger_ros使用catkin build编译时因asio类型缺失报错，改用catkin_make可成功绕过该构建问题。

# ranger_ros catkin build编译报错asio::posix::basic_stre。

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[Compilation issue](https://github.com/agilexrobotics/ranger_ros/issues/20)（GitHub agilexrobotics/ranger_ros #20）

**状态**：有绕过办法

## 问题

执行catkin build编译ranger_base时报错：async_can.hpp中asio::posix::basic_stream_descriptor&lt;&gt;未命名模板类型，提示是否意指stream_descriptor；同时相关声明也未找到。

## 环境

机型：AgileX RANGER MINI；软件栈：ranger_ros、ugv_sdk、scout_ros；构建工具：catkin build（失败）、catkin_make（可用）；系统：Linux开发机。

## 解决办法

1. 放弃使用 `catkin build` 构建 ranger_ros 工作空间，该工具在当前环境下会触发 asio 模板类型解析错误及后续 CMake 目标定义冲突。
2. 在工作空间根目录下改用 `catkin_make` 命令进行编译，该方式已被验证可正常完成 ranger_base 及相关节点的构建。
3. 避免手动向 scout_base 或 ranger_base 的 CMakeLists.txt 注入 `ASIO_ENABLE_OLD_SERVICES` 等宏定义以修复 asio 兼容性，此操作会导致 target_compile_definitions 作用于非本项目的目标而引发新的 CMake 配置错误。

讨论原作者：@Saksham-Bhadani 等，版权归原作者所有。
:::

## 原始参考来源 (Sources)

- [GitHub agilexrobotics/ranger_ros #20：Compilation issue](https://github.com/agilexrobotics/ranger_ros/issues/20)