【Keil MDK 5.39 版本混搭排查:启动警告、Target 异常、ARMCC 路径失败的解决方法】
Keil MDK 5.39 安装后弹出编译器注册/版本警告、Target 异常:原因竟是汉化替换了 UV4.exe
背景
- Keil MDK 安装路径:
D:\Keil5.39 - 预期:安装的是MDK-ARM 5.39
- 实际:打开 µVision 后出现警告、Target 异常;进一步排查发现µVision 版本显示成了 5.25.3
主要现象
1)启动 Keil 直接弹出编译器注册/版本警告
弹窗内容类似下面这样:
*** Warning: Registered ARM Compiler ignored, Version needs to be 5 or higher. Path: 'ARMCLANG' !截图:
2)Target/器件相关显示异常
在Options for Target里,Device/Target 的显示、识别或行为不正常(不同工程表现可能不完全一致)。
截图(示例):
3)实际使用踩坑:手动指定旧 ARMCC 编译器路径会失败
我在工程里尝试切换/指定旧的 ARMCC(ARM Compiler 5)时也遇到问题,比如手动指定:
D:\Keil5.39\APP\Core\ARM\ARMCC
表现为:工具链设置无法正常生效,编译失败或提示不兼容(根因其实不是路径错,而是 Keil 版本“混搭”导致的)。
进一步排查:µVision 和 Toolchain 版本“混搭”
打开Help -> About uVision,能看到一个非常关键的信息:
- 顶部 µVision:V5.25.3.0
- 但 Toolchain/MDK-ARM:V5.39.0.0(ArmClang 6.21 等)
也就是说:IDE 本体是旧的(5.25.3),但工具链/组件又是新的(5.39)。
此外,在某些设置界面里,工具链路径看起来又是正常指向 5.39:
这也是最迷惑的地方:看起来装的是 5.39,但 IDE 却“回退”成了 5.25.3。
根因分析
我之前为了汉化,直接用汉化包替换了UV4.exe。
结果就是:把旧版 µVision(5.25.3)的可执行文件覆盖到了5.39 的安装目录里,造成版本混搭:
UV4.exe是旧的 →About顶部显示 5.25.3- Toolchain/组件仍是新的 → Toolchain 还是 5.39
于是就出现各种“看起来不相关”的问题:编译器注册警告、Target 异常、切换旧 ARMCC 失败等。
解决方法(亲测有效)
核心思路:把UV4.exe恢复为 5.39 原版,让 IDE/工具链版本一致。
- 重新运行MDK 5.39 安装包,选择Repair/修复(或直接覆盖安装到同一目录)。
- 再次打开
Help -> About uVision验证版本一致:- µVision:V5.39.0.0
- Toolchain/MDK-ARM:V5.39.0.0
修复后截图(发布前建议裁掉许可证信息,我这里已裁掉不相关区域):
我这边修复后:
- 启动时的编译器注册/版本警告消失
- Target/器件相关异常恢复正常
D:\Keil5.39\APP\Core\ARM\ARMCC这类旧 ARMCC 路径的使用问题也随之消失
避坑建议
- 不要用“直接替换
UV4.exe”这种方式汉化(非常容易把旧版 exe 覆盖进新版本目录)。 - 如果一定要折腾,至少先备份原版
UV4.exe,出问题能快速还原。 - 遇到类似问题,第一时间看
Help -> About uVision,别只看安装目录名字/路径。
