啥意思啊这个程序

[复制链接]
604|10
 楼主| hanwe 发表于 2018-4-10 10:23 | 显示全部楼层 |阅读模式

/****************************************************
创建目标 '目标 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 发表于 2018-4-10 10:24 | 显示全部楼层
好几个地方定义了 相同的变量。
llia 发表于 2018-4-10 10:27 | 显示全部楼层

是的,只要在定义某个变量定义一次就可以了。
llia 发表于 2018-4-10 10:29 | 显示全部楼层
嗯,其余地方用到这个变量的时候  用 extern 做前缀
wangpe 发表于 2018-4-10 10:53 | 显示全部楼层
变量重复定义了,你是不是在头文件中定义了,然后多出包含了?
 楼主| hanwe 发表于 2018-4-10 10:56 | 显示全部楼层
嗯,那我该?
wangpe 发表于 2018-4-10 11:01 | 显示全部楼层

也可以这样定义
#ifdef      A_GLOBALS
#define   A_EXT   
#else
#define   A_EXT    extern
#endif
然后在你定义变量的C文件中,声明
#define   A_GLOBALS
如果定义变量m,可以在头文件这样定义
A_EXT   unsigned char  m;
langgq 发表于 2018-4-10 11:04 | 显示全部楼层

楼上方法不错,这样包含头文件就不会错了,呵呵
wangzsa 发表于 2018-4-10 11:07 | 显示全部楼层
这个变量有没有可能是定义为外部变量。
zhuww 发表于 2018-4-10 11:11 | 显示全部楼层
定义一次就可以了
 楼主| hanwe 发表于 2018-4-10 11:13 | 显示全部楼层

好的,我明天去单位试一下,多谢各位大侠了哈,结贴了先
您需要登录后才可以回帖 登录 | 注册

本版积分规则

979

主题

8749

帖子

4

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