Target 'Target 1' uses ARM-Compiler 'Default Compiler Version 5' which is not available.解释
Rebuild started: Project: Project*** Target 'Target 1' uses ARM-Compiler 'Default Compiler Version 5' which is not available.
*** Please review the installed ARM Compiler Versions:
'Manage Project Items - Folders/Extensions' to manage ARM Compiler Versions.
'Options for Target - Target' to select an ARM Compiler Version for the target.
*** Rebuild aborted.
Build Time Elapsed:00:00:00解释
错误分析
此错误表明你的 Keil MDK 项目配置为使用 ARM Compiler 5(即旧版 armcc),但当前开发环境中未安装该编译器。Keil MDK 默认可能已切换到 ARM Compiler 6(ArmClang),导致项目无法编译。以下是解决方案:
解决方案
1. 检查已安装的 ARM 编译器版本
打开 Keil MDK,进入 Project → Manage → Manage Project Items → Folders/Extensions。
在 ARM Compiler 标签下查看已安装的编译器版本。
如果列表中只有 ARM Compiler 6,说明未安装 ARM 5。
如需继续使用 ARM 5,需手动安装或通过 Keil 软件包安装。
2. 切换项目到 ARM Compiler 6
如果不需要 ARM 5,直接修改项目配置:
打开 Options for Target → Target 标签。
在 ARM Compiler 下拉菜单中选择 Use default compiler version 6。
点击 OK 保存设置。
3. 安装 ARM Compiler 5(如需兼容旧项目)
如果必须使用 ARM 5:
打开 Keil 的包管理器:Pack Installer(工具栏图标)。
搜索 ARM Compiler 5,勾选并安装。
返回 Manage Project Items → Folders/Extensions,确认 ARM 5 已添加到编译器列表。
4. 解决编译器切换后的兼容性问题
若从 ARM 5 切换到 ARM 6,需注意以下修改:
移除旧版编译选项:
在 Options for Target → C/C++ 中删除 ARM 5 的专属选项(如 --no_multibyte_chars)。
更新启动文件:
替换 startup_stm32f10x_md.s 为适配 ARM 6 的版本(文件后缀可能为 _ac6.s)。
检查代码兼容性:
部分 ARM 5 的语法(如旧版汇编指令)需调整为 ARM 6 支持的格式。
5. 验证配置
重新编译项目:执行 Rebuild All,观察是否仍有错误。
查看编译日志:确认编译器已切换为 ARM 6(日志中应显示 ArmClang)。
扩展:ARM Compiler 5 与 6 的差异
特性 ARM Compiler 5 ARM Compiler 6
编译器核心 传统 armcc 基于 LLVM 的 ArmClang
性能优化 基础优化 高级优化(如 LTO)
多字节字符支持 支持 --no-multibyte-chars 不支持
语法兼容性 旧版汇编语法 需适配 Clang 语法
常见问题
Q1:切换编译器后出现新错误怎么办?
检查代码是否包含 ARM 5 的遗留语法(如特定汇编指令)。
参考 ARM 迁移指南 更新代码。
Q2:如何判断项目必须使用 ARM 5?
如果项目依赖旧版库(如某些第三方闭源库),可能需要保留 ARM 5。
新版 ARM 6 支持绝大多数场景,建议优先迁移。
通过切换编译器版本或安装缺失的组件,即可解决此错误。若需进一步协助,请提供具体的编译日志或代码片段。
页:
[1]