编译时出错

[复制链接]
2745|18
 楼主| hanwe 发表于 2011-6-4 22:37 | 显示全部楼层 |阅读模式
/****************************************************
创建目标 '目标 1'
PA51汇编 STARTUP.A51 ...
编译 main.c ...
编译 lcd1602.c ...
编译 key.c ...
编译 display.c ...
连接 ...
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS

SYMBOL:
PSW_MEM


MODULE:
key.obj (KEY)

*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS

SYMBOL:
PSW


MODULE:
key.obj (KEY)

*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS

SYMBOL:
PSW_MEM


MODULE:
display.obj (DISPLAY)

*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS

SYMBOL:
PSW


MODULE:
display.obj (DISPLAY)

Program Size: data=70.1 xdata=0 code=1316
目标未产生
*///////////////////////////////////////////////////////////////////////////////////////////
yufe 发表于 2011-6-4 23:19 | 显示全部楼层
好几个地方定义了 相同的变量。
llia 发表于 2011-6-6 09:19 | 显示全部楼层
是的,只要在定义某个变量定义一次就可以了。
yufe 发表于 2011-6-6 10:52 | 显示全部楼层
嗯,其余地方用到这个变量的时候  用 extern 做前缀
wangpe 发表于 2011-6-6 11:31 | 显示全部楼层
变量重复定义了,你是不是在头文件中定义了,然后多出包含了?
 楼主| hanwe 发表于 2011-6-6 11:52 | 显示全部楼层
嗯,那我该?
wangpe 发表于 2011-6-6 12:17 | 显示全部楼层
也可以这样定义
#ifdef      A_GLOBALS
#define   A_EXT   
#else
#define   A_EXT    extern
#endif
然后在你定义变量的C文件中,声明
#define   A_GLOBALS
如果定义变量m,可以在头文件这样定义
A_EXT   unsigned char  m;
langgq 发表于 2011-6-6 12:30 | 显示全部楼层
楼上方法不错,这样包含头文件就不会错了,呵呵
 楼主| hanwe 发表于 2011-6-6 12:44 | 显示全部楼层
果然给力,谢谢^_^
hihu 发表于 2011-6-13 16:39 | 显示全部楼层
这种帖子应该置顶起来
hihu 发表于 2011-6-13 16:41 | 显示全部楼层
很实用呢
anqier1 发表于 2011-6-21 10:44 | 显示全部楼层
看来有好多细节要注意下呀

像wangpe所说的 我头一回知道(新人路过)
jioa 发表于 2011-6-21 13:33 | 显示全部楼层
错误的都显示一样的呀
wowewo 发表于 2011-6-23 13:28 | 显示全部楼层
很适合初学者看
teet 发表于 2011-6-24 22:06 | 显示全部楼层
这个帖子该结了吧
wwde 发表于 2011-6-26 22:24 | 显示全部楼层
为什么呢
wwde 发表于 2011-6-26 22:25 | 显示全部楼层
这种讨论帖应该顶起
tikelu 发表于 2011-7-2 10:13 | 显示全部楼层
:handshake
tikelu 发表于 2011-7-2 10:13 | 显示全部楼层
顶呀顶
您需要登录后才可以回帖 登录 | 注册

本版积分规则

979

主题

8749

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部