[转帖]Error[e27]: Entry "ER_WARN" in module AD_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2310 | 回复: 0   主题: [转帖]Error[e27]: Entry "ER_WARN" in module AD        下一篇 
xiaojiang
注册用户
等级:少尉
经验:345
发帖:77
精华:0
注册:2011-8-31
状态:离线
发送短消息息给xiaojiang 加好友    发送短消息息给xiaojiang 发消息
发表于: IP:您无权察看 2014-12-11 16:33:38 | [全部帖] [楼主帖] 楼主

想定义两个结构体,在WARN.h 文件中定义结构体,然后再WARN.c文件中使用:

ER_WARN.Span=0x0000;ER_WARN.Span=0x0000;等,

结构编译器报错:Error[e27]: Entry "ER_WARN" in module AD ( C:…… ) redefined in module FINGERPRINT (…… )

我就纳闷了,在WARN.h中定义,在WARN.c中使用怎么会报这个错误呢。(声明一下,结构贴的成员仅在WARN.c文件中调用,其他文件没有)。

然后我又试着,将以下的定义放到:CONFIG.h 总的头文件中去,结果还是出现这个问题。百思不得其解。

然后,把整个结构体定义放到WARN.c文件中,编译通过。我就想是不是struct WARNING ER_WARN;、struct WARNING WARN;这两个语句的问题,然后我单独把这个两个语句放到WARN.c文件中,红色部分依然留在WARN.h 中,编译也通过了……

很是纳闷,这是为什么?

struct WARNING //报警
{
      unsigned char Weight; //吊重
      unsigned char Moment; //力矩
      unsigned char Span; //限幅
      unsigned char Lifting; //起升
      unsigned char Rotary; //回转
      unsigned char Wind; //风速
      unsigned char DipAngle; //倾角
      unsigned char Hight; //高度
};
struct EARLY_WARNING //预警
{
      unsigned char Weight; //吊重
      unsigned char Moment; //力矩
      unsigned char Span; //限幅
      unsigned char Lifting; //起升
      unsigned char Rotary; //回转
      unsigned char Wind; //风速
      unsigned char DipAngle; //倾角
      unsigned char Hight; //高度
};
struct WARNING ER_WARN;
struct WARNING WARN;


一般只在头文件中声明变量,在原文件中定义变量,

即使你在头文件中使用了预编译指令 #ifndef.... #define ... #endif,也不能在头文件中定义变量

你的头文件没有用LS那个所说的条件编译指令

当你在多个地方包含这个头文件的时候,就会在两个地方产生定义

因为,其实包含也是比较单纯的文本复制,相当于一个头文件被分别复制到两个地方,这个编译的时候当然就冲突了 上面提到的方法也不通用,比如说有几个.c文件要包含同一个.h文件,而那个.h文件定义了变量或者结构编译还是会通不过,比较通用的方法是:专门用一个.c文件来定义变量或者结构,用对应的.h文件来声明。所有的.c文件都则都可以包含声明变量的.h文件。

--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论