问题描述
Keil MDK-ARM v5.38版本打开RT-Thread 的软件仿真工程文件,之后进行编译时报错 “.\build\rtthread-stm32.axf” - 3 Error(s), 0 Warning(s).
keil报的三个错误为:

问题分析
报错信息提示为三个使用的宏没有定义。理论上讲从RT-Thread官网上下载的demo用例不应该出现这种问题才对。
问题解决
经过对比5.38版本相较于旧版更新的部分功能,发现自MDK5.37开始,AC5(ARMCC)不再默认安装,此时在Keil中打开Options for Target可以看到Code Generation ARM Compiler如下:

由于compiler version6编译器中没有SIG_ERR等宏,所以使用compiler version6对RT-Thread软件仿真文件进行编译时会报错。
解决办法
- 改用Keil MDK-ARM V5.37或更早的版本
- 手动安装AC5(ARMCC)
结果
改用Keil MDK-ARM V5.35后,在Keil中打开Options for Target可以看到Code Generation ARM Compiler如下:

选中compiler version5后再对工程文件进行编译。
编译成功!

安装包
需要Keil MDK-ARM V5.35的文末自取:
- Keil MDK-ARM V5.35
链接:https://pan.baidu.com/s/1OXv1n3hTDNNuRMjj9Wvaxw
提取码:axra
在KeilMDK-ARMv5.38中尝试编译RT-Thread工程时遇到错误,原因是从5.37版本开始AC5(ARMCompiler)未默认安装。由于编译器版本6缺少某些宏定义,如SIG_ERR,导致编译失败。解决方法是回退到5.37或更早版本并手动安装AC5,选择编译器版本5后,工程能成功编译通过。
1万+





