KEIL5 编译错误解决:MDK 5.37 及以上版本添加 AC5(ARM Compiler 5)编译器

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 目录

  1. 如果你下载的是 .exe 安装包,直接运行,安装路径选择你的 MDK 安装根目录 (例如 C:\Keil_v5)。
  2. 如果下载的是 .zip 压缩包,解压后将里面的 ARMCC 文件夹完整复制到 你的MDK安装路径\ARM 目录下。
    • 最终路径示例:C:\Keil_v5\ARM\ARMCC
    • 该文件夹下应包含 binlibinclude 等子目录。

步骤 3:在 Keil 中配置使用 AC5

  1. 打开你的 Keil 工程。
  2. 点击菜单栏 ProjectManageProject Items
  3. 切换到 Folders/Extensions 标签页。
  4. ARM Compiler 区域,点击 Add another ARM Compiler Version 按钮。
  5. 浏览并选择你刚才放置的 ARMCC 文件夹(例如 C:\Keil_v5\ARM\ARMCC)。
  6. 确认添加后,列表里会出现类似 ARM Compiler 5.06u7 的条目。
  7. 点击 OK 保存设置。

步骤 4:为目标工程选择 AC5 编译器

  • 打开 ProjectOptions 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 中配置并选择。希望这篇指南能帮你快速解决编译报错问题,继续愉快地开发和调试。

相关推荐
Zyed1 小时前
[STM32]Day10-Part2硬件I2C读写MPU6050
stm32·单片机·嵌入式硬件
纳祥科技2 小时前
NX699,内置精度±5%晶振的lightning苹果PD快充12W
单片机·手机·音视频
点灯小铭3 小时前
基于单片机的图书馆座位管理系统设计与实现
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
清风6666663 小时前
基于单片机的两路PWM信号输出及频率占空比相位差调节系统
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
LeoZY_3 小时前
CH347应用 USB转JTAG功能之:probe-rs搭配CH347下载MCU命令全指南
单片机·嵌入式硬件·mcu·开源·github
Zyed3 小时前
[STM32]Day11-软件实现SPI读写W25Q64
stm32·单片机·嵌入式硬件
普中科技3 小时前
【普中STM32F1xx开发攻略--标准库版】-- 第 48 章 FATFS 文件系统实验
stm32·单片机·嵌入式硬件·文件系统·开发板·fatfs·普中科技
振南的单片机世界3 小时前
中央对齐PWM:边沿对齐EMI大,中央对齐更安静
arm开发·stm32·单片机·嵌入式硬件
清风6666663 小时前
基于51单片机的电阻测量仪设计
单片机·嵌入式硬件·毕业设计·51单片机·课程设计·期末大作业