标题: *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS [打印本页]

作者: 吴琳    时间: 2020-4-22 11:27
标题: *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
求解答编程报错 找不到重定义的地方啊~~
  1. Build started: Project: wendu
  2. Build target 'Target 1'
  3. compiling main.c...
  4. compiling ds18b20.c...
  5. linking...
  6. *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
  7.     SYMBOL:  INIT_DS18B20
  8.     MODULE:  .\Objects\ds18b20.obj (DS18B20)
  9. *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
  10.     SYMBOL:  READ_DS18B20
  11.     MODULE:  .\Objects\ds18b20.obj (DS18B20)
  12. *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
  13.     SYMBOL:  _WRITE_DS18B20
  14.     MODULE:  .\Objects\ds18b20.obj (DS18B20)
  15. *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
  16.     SYMBOL:  _DELAY_ONEWIRE
  17.     MODULE:  .\Objects\ds18b20.obj (DS18B20)
  18. *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
  19.     SEGMENT: ?PR?_WRITE_DS18B20?MAIN
  20. *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
  21.     SEGMENT: ?PR?READ_DS18B20?MAIN
  22. *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
  23.     SEGMENT: ?PR?INIT_DS18B20?MAIN
  24. *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
  25.     SEGMENT: ?PR?KEYSCAN16?MAIN
  26. *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
  27.     SEGMENT: ?PR?_WRITE_DS18B20?DS18B20
  28. *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
  29.     SEGMENT: ?PR?READ_DS18B20?DS18B20
  30. *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
  31.     SEGMENT: ?PR?INIT_DS18B20?DS18B20
  32. Program Size: data=31.2 xdata=0 code=1061
  33. Target not created.
  34. Build Time Elapsed:  00:00:01
复制代码

源码:三个文件[code]//main.c
#include<stc15f2k60s2.h>
#include "ds18b20.c"
#define  uchar unsigned char
unsigned char num;
unsigned char yi,er,san,si,wu,liu,qi,ba;
unsigned char tab[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XBF,0XFF};
void init();
void Delayms(uchar i);
void keyscan();
void Keyscan16(void);
void display_a(int yi,int er);
void display_b(int san,int si);
void display_c(int wu,int liu);
void display_d(int qi,int ba);
void main()
{

作者: carpcarey    时间: 2020-4-22 12:18
本帖最后由 carpcarey 于 2020-4-22 17:54 编辑

include只能是头文件.h不能是.c文件。。。主程序
#include "ds18b20.c"
表示你在主程序里包含了ds18b20.c里的所有内容,再编译到ds18b20.c时,发现那些函数名已经被主程序声明过了。就出现了重复声明的问题。


所以将#include "ds18b20.c" 改为#include "ds18b20.h"

作者: csmyldl    时间: 2020-4-22 12:31
重复定义了相同的变量
作者: 1105688209    时间: 2020-4-22 12:58
提示全局变量重复定义,是不是uchar unsigned char被重复定义了?你检查一下头文件包含里有没这代码
作者: man1234567    时间: 2020-4-22 16:26
ERROR L104: 变量重复定义,请参考全局变量;
WARNING L16: 函数没有被调用,如果真的没用就删了。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1