keil5编译报错问题

keil5一开始编译文件总是报错

error:  #3092: anonymous unions are only supported in --gnu mode, or when enabled with #pragma anon_unions

错误:匿名联合仅在--gnu模式下支持,或者在使用#pragma anon_unions时启用。

于是我在报错的文件里都添加了

#pragma anon_unions

也可以在魔法棒的C/C++里的把misc controls 那一栏填为--gnu

31e556366c06412d8b42bbf8b8ff867d.png

另外一个就是头文件前有个红叉❌。报上面👆🏻那个错误,不过上网查,这种问题也不算错误,放着不管就行。这个我的解决方法是把路径的名字全改为英文。

这样虽然上面的报错都解决了,但也因此又报了新的错误。

Error: L6079E: Subtool invocation error: Error executing armcc. 2??|?3ɡ£

 

Error: L6636E: Pre-processor step failed for 

 

Error: L6372E: Image needs at least one load region.

这三个错误就像双胞胎一样,只要编译文件就有。然后上网得知这个是MDK编译器的问题,然后又去看同学的keil5,确实是编译器那里的问题。我的魔法棒里显示的“C/C++”,而别人是显示“C/C++(AC6)”,我以为是我的keil5版本即使重装一次还是版本低了,我就用别人的安装包再重装第二次(MDK也重装了一次,这时我才发现keil5必须要安装MDK才能编译及各种使用,要不然界面的图表都是灰的,而之前我一直不知道MDK有啥用),然而还是不行,就是不懂为啥他的界面有编译器版本选择,而我的只有,旧版本的编译器,没得选。。

关于编译器问题,这个链接只是用来告诉你不同编译器是有差别的。其他的没啥。

最后我就想怎么下载最新的编译器,并导入到我的keil5中。

05305c4eab634f738624e5be0de748c2.png

 然后又发现了一个问题,我的ARM文件夹下没有ARMCLANG,报了下面那个错误,这个文件,我的第一反应是到官网下一个,但我的直觉告诉我,不要去官网搞资源,去CSDN查,更快更香。

1c8946f2983149cab70e5605d1f6ec5e.png

然后我终于找到了一个绝世好文章,MDK提供的编译器的版本问题​​​​​​

35f5d3a5d32f4f1d9ea0879cf40dd430.png

 

于是我想到我的电脑里确实有好几个版本的MDK,于是我就打算重新安装一下,结果居然就TMD成功了,,,,原来那个编译器版本问题就是因为之前跟着视频下的MDK一直是旧版本的,只有 ARM Compiler 5.06 ,但是缺少了 ARM Compiler 6.6。现在所有文件都可以正常编译使用了。

综上,所有的所有的所有的所有的所有的所有的所有的问题都是源自于你的keil5版本不够,或者你的MDK版本不够。

以上的所有问题都是表象,真正的问题就是你的版本问题,魔法棒的设置基本都不需要改,默认的就行。

 

OVER

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值