原子的例程编译报错

2019-07-20 03:39发布

我用的是探索者的开发板,由于前一段时间一直在用K60,很长时间没用原子的库了,最近在调用原子的库的时候,uart.c里总是有个函数出现警告,警告也就没什么,关键是编译的时候说这有错误。开始以为是库的问题,又重新下了个最新的库,调用的时候还是有问题,以为自己调用出了问题。后来直接打开库直接编译,例如跑马灯等,但所有工程的uart.c里都报错了,还是老样子。

出问题的函数位于uart.c的47行,函数如下:
//定义_sys_exit()以避免使用半主机模式   
_sys_exit(int x)                                 
{                                                     
        x = x;                                      
}                                                   


编译结果如下:
*** Using Compiler 'V5.06 update 2 (build 183)', folder: 'e:Keil_v5ARMARMCCBin'
Build target 'LED'                                                                                          
compiling usart.c...                                                                                       
..SYSTEMusartusart.c(47): error:  #260-D: explicit type is missing ("int" assumed)
  _sys_exit(int x)                                                                                          
..SYSTEMusartusart.c: 0 warnings, 1 error                                                     
"..OBJLED.axf" - 1 Error(s), 0 Warning(s).                                                      
Target not created.                                                                                      
Build Time Elapsed:  00:00:04                                                                        


最后附上全屏截图。。。

所有情况都在截图里了。。。
求大神解答,这是怎么回事,该怎么解决。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
13条回答
q836549027
2019-07-20 12:14
xiakemoon 发表于 2016-6-6 17:07
这个错误应该是说这个函数缺少类型,你试试在函数名前面加个类型,比如void,再编译看看。
我还不懂这个函 ...

那个函数是什么并不重要,重要的是编译语句的翻译是:显式类型丢失(“int”假设)。并不是函数类型的问题,一看就知道这是个特殊的函数,不需要类型。
问题的原因我已经找到了,我用的不是原子提供的STM32F4 的器件支持包,而是从Keil官网下载的最新的STM32F4 的器件支持包,原本以为新版的会兼容旧版,可目前来看并不是这么回事。
原子提供的是1.0.8版本的,而我从官网下载的是2.90版本的,估计uart里的那个函数本来就写的有问题,所以才显示警告吧,更新了器件包后就报错了。

一周热门 更多>