原因是 missing compiler version5,缺少V5编译器(compiler version5),因为打开的工程比较老,是用v5的编译器写的,而现在下的keil5不再预装v5编译器;

刚下载了最新的MDK5.37后发现原来的文件不能编译,最后完美解决了问题,记录一下。

刚编译是出现这种情况:

网上有很多说把Options for target中的ARM Compiler换成其他的试一下(因为那儿显示的是missing compiler version5,是因为新版本的不再提供V5的编译器):

换成

但是编译后出现了很多个错误,因为用是比较老的程序,只能用v5编译器编译(我出现一千多个错误和警告),然后我又找了很久,看到有人说37版本的需要独立安装ARMCC(缺少的编译器),我差点儿就跑去安装了,但是又看到了另一个博主的方法。我在这儿分享一下:

1.点击魔术棒旁边的三个正方体

再点击第二个(图):

点击三个点:

找到MDK5安装目录的ARM中的ARMCC这个文件夹,选择这个文件夹,然后点击确定。

然后就是这样子,再点OK就行啦。

这样编译就不会报错了,也不用去下V5版本的ARMCC。这对于更新后出现的问题能很好解决。但是第一次下载keil5最新版出现这个问题就要去官网下V5版本的ARMCC.(对于新下载的会没有ARMCC这个文件夹,因为新版本的不再提供V5的编译器)

(如果有朋友和你是相同版本的keil5,有ARMCC这个文件夹的话,可以拷贝他的ARMCC文件夹放在上述目录下,亲测有效)

参考https://blog.csdn.net/mowwwcom/article/details/124790542

没有ARMCC的可能是第一次下载keil5,下面是V5编译器下载链接

v5编译器下载链接(下载v5的,别下错了):Legacy Arm Compilers – Arm Developer

下载了放在ARM文件夹内,然后用上面的步骤添加下载的文件夹,就能用V5的编译器了。