场景:在搭建完Keil工程后进行编译,会出报错或者warning。
问题描述
搭建完Keil工程后进行编译后发现,统一都是GCC编译的问题。如下面的代码块里面所示。
compiling stm32f4xx_syscfg.c...
..\CORE\arm_math.h(293): warning: #2803-D: unrecognized GCC pragma
#pragma GCC diagnostic push
..\CORE\arm_math.h(294): warning: #2803-D: unrecognized GCC pragma
#pragma GCC diagnostic ignored "-Wsign-conversion"
..\CORE\arm_math.h(295): warning: #2803-D: unrecognized GCC pragma
#pragma GCC diagnostic ignored "-Wconversion"
..\CORE\arm_math.h(296): warning: #2803-D: unrecognized GCC pragma
#pragma GCC diagnostic ignored "-Wunused-parameter"
..\CORE\arm_math.h(7146): warning: #2803-D: unrecognized GCC pragma
#pragma GCC diagnostic pop
..\FWLIB\src\stm32f4xx_syscfg.c: 5 warnings, 0 errors
compiling stm32f4xx_can.c...
..\CORE\arm_math.h(293): warning: #2803-D: unrecognized GCC pragma
#pragma GCC diagnostic push
原因分析:
这是#paragrmGCCdiagnostic编译器警告的方法弃用警告,即上面代码块中所示。说人话,就是我们选用的编译器版本问题。直接上操作吧!
解决方案:
我们在 Options for Target(魔术棒)的 C++ 选项卡中取消勾选 C99 Mode和 GNU extensions 即可。点击 OK 保存退出!
重新编译,即成功了。
我可不允许你,还没点亮自己的第一个LED。就中道崩殂了哦!