KEIL5 编译错误解决:MDK 5.37 及以上版本添加 AC5(ARM Compiler 5)编译器
问题现象
在安装 Keil MDK 5.37 或更高版本后,编译某些旧工程(尤其是基于 STM32 标准库或早期 HAL 库的项目)时,可能出现如下错误:

原因分析:从 MDK 5.37 版本开始,ARM Compiler 5(AC5,即 ARMCC)不再默认随安装包提供,而是只包含 Compiler 6(AC6,基于 LLVM)。许多老工程配置为使用 AC5,因此直接编译会失败。
解决方法:手动添加 AC5 编译器
步骤 1:下载 AC5 编译器安装包
前往 ARM 官方 Keil 网站下载 Legacy 支持包:
- 网址:https://www.keil.com/download/legacy/
- 找到 ARM Compiler 5.06u7 或类似版本(注意需要与你的 MDK 版本兼容,一般 5.06u7 适用大多数情况)
- 选择 Windows 32-bit 版本下载(
ARMCC506u7.exe或.zip)
如果官网下载慢或需要注册,也可以在搜索引擎中搜索"ARM Compiler 5.06u7 download"寻找可靠镜像(注意安全)。
步骤 2:解压安装到 MDK 目录
- 如果你下载的是
.exe安装包,直接运行,安装路径选择你的 MDK 安装根目录 (例如C:\Keil_v5)。 - 如果下载的是
.zip压缩包,解压后将里面的ARMCC文件夹完整复制到你的MDK安装路径\ARM目录下。- 最终路径示例:
C:\Keil_v5\ARM\ARMCC - 该文件夹下应包含
bin、lib、include等子目录。

- 最终路径示例:
步骤 3:在 Keil 中配置使用 AC5
- 打开你的 Keil 工程。
- 点击菜单栏 Project → Manage → Project Items。
- 切换到 Folders/Extensions 标签页。
- 在 ARM Compiler 区域,点击 Add another ARM Compiler Version 按钮。
- 浏览并选择你刚才放置的
ARMCC文件夹(例如C:\Keil_v5\ARM\ARMCC)。 - 确认添加后,列表里会出现类似
ARM Compiler 5.06u7的条目。 - 点击 OK 保存设置。

步骤 4:为目标工程选择 AC5 编译器
- 打开 Project → Options for Target 'XXX'(或直接点击工具栏的"魔术棒"图标)。
- 切换到 Target 标签页。
- 在 Code Generation 区域,找到 ARM Compiler 下拉框。
- 选择你刚刚添加的
ARM Compiler 5.06u7(或对应版本)。 - 点击 OK 保存。

步骤 5:重新编译
现在再次点击 Build 按钮,工程应该能够正常使用 AC5 编译,不再提示编译器缺失。
扩展说明
- 为什么不用 AC6:虽然 AC6 更新、优化更好,但部分老代码(尤其是依赖 ARMCC 特定扩展、内联汇编语法、或者未更新的库)不兼容 AC6,迁移成本较高。添加 AC5 可以快速解决编译问题。
- 未来推荐:建议逐步将工程迁移至 AC6,因为 ARM 已不再更新 AC5,未来新器件和功能可能仅支持 AC6。迁移时主要注意:内联汇编语法差异、编译选项调整、以及可能的 warning/error 修正。
- 多版本共存:你可以同时保留 AC5 和 AC6,在不同工程间按需切换,互不影响。
总结
通过在 MDK 5.37 及以上版本中手动添加 AC5 编译器,可以轻松兼容需要 ARM Compiler 5 的老工程。核心三步:下载 Legacy 包 → 解压到 MDK/ARM 目录 → 在 Keil 中配置并选择。希望这篇指南能帮你快速解决编译报错问题,继续愉快地开发和调试。