一、问题现象

打开基于标准库的 STM32 工程时,编译报错:

Text
Target uses ARM-Compiler Default Compiler Version 5 which is not available

原因:MDK 5.37 及以上版本的官方安装包已移除 ARM Compiler 5(ARMCC),而旧项目(标准库工程)依赖 AC5 编译链,直接打开会因编译器缺失而无法编译。

适用场景:Keil MDK 5.37 及更高版本默认仅搭载 AC6 编译器,缺少 ARMCC V5,打开旧标准库 STM32 工程时报编译器缺失错误。
• • •

二、前期准备

2.1 安装包

推荐版本:ARM Compiler 5.06 update 7 (build 960) —— Keil 官方发布的最后一个 AC5 稳定版本,兼容几乎所有标准库工程。

📥 前往 ARM 官方下载页面 ↗

💡 进入页面后选择 r5p6-06rel1 → 下载 Arm Compiler 5.06 update 7 (build 960) Win32
若官网下载速度较慢,可在搜索引擎搜索 "ARMCompiler_506_Windows_x86_b960" 寻找可靠镜像。

2.2 查询 Keil 安装目录

右键 Keil uVision5 快捷方式 → 【打开文件所在位置】

示例路径:C:\Keil_v5

⚠️ 重要要求:所有路径 不能包含中文、空格、特殊符号,否则编译器无法被正确识别。
• • •

三、安装 ARMCC V5

  1. 解压编译器压缩包 ARMCompiler_506_Windows_x86_b960.zip,找到 setup.exe
  2. 右键 setup.exe以管理员身份运行
  3. 安装向导操作:
  4. 【关键】设置安装路径:浏览选择 Keil 目录下的 ARM 文件夹,新建文件夹命名 ARMCC
    示例路径:C:\Keil_v5\ARM\ARMCC
    必须安装到此路径,否则 Keil 无法自动识别编译器
  5. 点击 NextInstall,等待安装完成
  6. 取消勾选 Launch ARM Compiler Documentation,点击 Finish
• • •

四、Keil 内添加注册编译器

  1. 打开 Keil MDK,打开任意工程
  2. 顶部菜单:ProjectManageProject Items...
  3. 切换标签页:Folders/Extensions
  4. 找到 Use ARM Compiler,点击右侧 ...(Setup 按钮)
  5. 点击:【Add another ARM Compiler Version to List...】
  6. 选中目录:C:\Keil_v5\ARM\ARMCC,确认
  7. 列表出现 V5.06 update 7 (build 960) = 识别成功,关闭弹窗保存

如果列表为空,请检查安装路径是否正确,或重启 Keil 后重新添加。

• • •

五、工程切换为 V5 编译器

  1. 点击工具栏【魔术棒】Options for Target
  2. 切换到 【Target】 选项卡
  3. ARM Compiler 下拉菜单选择:V5.06 update 7 (build 960)
  4. 点击 OK 保存,重新编译工程

切换后工程将使用 ARMCC V5 编译,标准库代码应能够正常编译通过。

• • •

六、常见故障排查

1. Keil 列表找不到 V5 编译器

检查安装路径是否放置在 Keil_v5\ARM\ARMCC 目录下;关闭 Keil 重启后重新添加路径。

2. 安装提示权限不足

安装程序、Keil 全部 以管理员身份运行

3. 编译出现大量语法报错

AC5 与 AC6 语法标准不同,标准库老工程 必须使用 V5;CubeMX 新工程推荐使用 AC6。

4. 路径报错

不要将安装包或 Keil 放置在 桌面、中文用户名文件夹 下,全程使用纯英文路径。

• • •

七、验证成功标准

重新编译工程,观察编译日志输出:

Text
Using ARM Compiler V5.06

无版本缺失报错,工程正常生成目标文件,即为配置完成。

验证要点:

小提示:建议在工程 Options → Target 中将编译器版本固定为 V5,避免切换工程时误触默认设置。