码迷,mamicode.com
首页 > 其他好文 > 详细

keil出现错误declaration is incompatible

时间:2014-12-30 17:10:20      阅读:1002      评论:0      收藏:0      [点我收藏+]

标签:

错误来源

.\ECAT\inc\STM32appl.h(38): error: #147: declaration is incompatible with "unsigned shortnPdInputSize" (declared at line 396 of ".\ECAT\inc\ecatslv.h")

  extern UINT16 nPdInputSize;

.\ECAT\inc\STM32appl.h(39): error: #147: declaration is incompatible with "unsigned short nPdOutputSize" (declaredat line 398 of ".\ECAT\inc\ecatslv.h")

翻译:声明是不相容的

描述:在函数还没有声明之前就已经使用了.多出现在两种情况:第一种,函数体还没有写,就已经用到了它,这种情况多出现在写一个程序的大体结构中,只是简单写一下框架.第二种情况比较常见,函数a调用函数b,但函数b的函数体在函数a的下面:
void a(void) //函数a的实体
{
       b(); //调用函数b
}

void b(void) //函数b的实体
{
}
这样如果点编译,就会产生

我已经依据此方法解决该问题。。。

但是在st官方的解决方法中,不是这样的。

core_cm3.h文件太老了,2009年的,与新版本的IAR6.3不兼容,IAR 6.3用的是2011年的,使用IAR自带的就行了
1,把老的
core_cm3.h去掉,删除,或者改成core_cm3.h.old。
2,
Project ->Options -> General Options -> Library Configuration -> Use CMSIS,右下角的选项中选择 use CMSIS

具体内容在网址

http://www.emcu.it/ARM_Compiler/IAR/IAR_tips_and_tricks.html

 

keil出现错误declaration is incompatible

标签:

原文地址:http://blog.csdn.net/kobesdu/article/details/42268065

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!