找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2351|回复: 4
收起左侧

*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS

[复制链接]
ID:591744 发表于 2020-4-22 11:27 | 显示全部楼层 |阅读模式
10黑币
求解答编程报错 找不到重定义的地方啊~~
  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()
{

回复

使用道具 举报

ID:267719 发表于 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"
回复

使用道具 举报

ID:235200 发表于 2020-4-22 12:31 | 显示全部楼层
重复定义了相同的变量
回复

使用道具 举报

ID:735109 发表于 2020-4-22 12:58 | 显示全部楼层
提示全局变量重复定义,是不是uchar unsigned char被重复定义了?你检查一下头文件包含里有没这代码
回复

使用道具 举报

ID:584814 发表于 2020-4-22 16:26 | 显示全部楼层
ERROR L104: 变量重复定义,请参考全局变量;
WARNING L16: 函数没有被调用,如果真的没用就删了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表