菲律宾申博太阳城娱乐官网开户游戏下载网上娱乐场: [技术支持] Keil环境下头文件包含异常

永利游戏开户直营
258|5
楼主

复制代码
在KEIL环境下使用 HC89F0531进行开发。现在刚刚新建了个很简单的工程,菲律宾申博太阳城娱乐官网开户游戏下载网上娱乐场:里面有两个c源文件 main.c 和 clock.c和一个h头文件head.h。main.c 文件内容如下:
  1. #include "head.h"

  2. void main(void)
  3. {
  4.     uchar i;

  5.     InitClock();
  6.     while (1)
  7.     {
  8.         i++;
  9.     }
  10. }
复制代码


clock.c 文件内容如下:
  1. #include "head.h"

  2. void InitClock(void)
  3. {
  4. CLKSWR  = 0x51;
  5. CLKDIV = 0X01;
  6. }
复制代码


head.h头文件内容如下:
  1. #ifndef HEAD_H_
  2. #define HEAD_H_

  3. #include "HC89F0531.h"

  4. void InitClock(void);

  5. #endif
复制代码


整个工程没有其他源文件和头文件了,很简单的一个工程, 然后编译工程出现了下面的这两种错误:
  1. linking...
  2. ***ERROR L104: MULTIPLE PUBLIC DEFINITIONS
  3. SYMBOL: P0M0
  4. MODULE: .\Out\clock.obj(CLOCK)
  5. ...
  6. ...
  7. ...
  8. ***WARNING L6: XDATA SPACE MEMORY OVERLAP
  9. FROM: FE80H
  10. TO: FE80H
  11. ...
  12. ...
  13. ...
复制代码
意思就是所有的寄存器定义出现了重定义, 外部数据空间重叠,其实是XSFR空间重叠,看上去根本原因就是 HC89F0531.h 头文件被包含了多次,但是从代码上看不应该被包含多次,有朋友知道是什么原因吗???




沙发
 楼主 | 2019-9-19 10:10 | 只看该作者
有没有人遇到过这种问题??
板凳
| 2019-9-19 15:24 | 只看该作者
加上 #define        ALLOCATE_EXTERN
地板
| 2019-9-25 00:04 | 只看该作者
楼上方法对吗,清理一下工程
5
| 2019-9-25 00:04 | 只看该作者
楼主解决了没以前我也遇到过,后来删了重新弄就好了。
6
| 2019-9-28 18:08 | 只看该作者
放一个文件试试看。
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

永利游戏开户直营 快速回复 返回顶部 返回列表
永利快速充值中心开户网登入 福利彩票在线开户直营网 彩11集团 永利游戏开户直营 申博网址导航游戏网上娱乐场
巴黎人吉林快3网址 赌博的人聚集的网站网上娱乐场 钻石娱乐平台 千亿HG名人馆时时彩计划软件 汇丰幸运28官方网
奔驰游戏官方网 200万换成几亿?网上娱乐场 阿玛尼AG国际馆开奖 赌场筹码200是多少钱网上娱乐场 江山重庆幸运农场官方网
ptX战警50条线 天天云南时时彩开奖 金沙网上直营赌场登入 菲律宾申博手机安卓版登入 淘金幸运农场走势