# unitree_rl_mjlab编译报错KeyBase does not name a type

> 原文链接：https://robotics.hellobike.com/pitfalls/2026-02-04-unitree-rl-mjlab-6
> 频道：pitfalls | 更新日期：2026-02-04 | 标签：auto, github-issue, unitree_rl_mjlab
> 核心摘要：部署模型编译g1_controller_lib时因unitree_sdk版本过旧导致KeyBase类型未定义，重新安装最新版SDK解决。

# unitree_rl_mjlab编译报错KeyBase does not name a type

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

**状态**：已解决

## 问题

在unitree_rl_mjlab/deploy/robots/g1_23dof目录下执行make编译时，unitree_joystick_dsl.hpp第160行及314行报错‘KeyBase’ does not name a type，且变量kb未声明，导致g1_controller_lib构建失败。

## 环境

宇树G1 23DOF机器人，unitree_rl_mjlab仓库，Linux系统，CMake构建环境，依赖unitree_sdk。

## 解决办法

1. 确认当前环境中安装的`unitree_sdk`版本是否过旧，检查其头文件中是否包含`KeyBase`类定义。
2. 卸载或移除旧版`unitree_sdk`，从官方源获取并重新安装最新版本SDK。
3. 清理原构建目录缓存（如删除build文件夹），重新执行`make`命令编译部署程序。

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

## 原始参考来源 (Sources)

- [GitHub unitreerobotics/unitree_rl_mjlab #6：KeyBase Error](https://github.com/unitreerobotics/unitree_rl_mjlab/issues/6)