*** ERROR L128: reference nameMADE TO UNRESOLVED EXTERNAL SYMBOL: ?C?LIMUL ADDRESS: 100E4ABH

8348人阅读
C51编译警告&*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL&
&*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
& & SYMBOL:& ?C_START
& & MODULE:& .STARTUP.obj (?C_STARTUP)
&*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
& & SYMBOL:& ?C_START
& & MODULE:& .STARTUP.obj (?C_STARTUP)
& & ADDRESS: 000DH
&&&&&&&& 如果你在用C51编译器出现上面的警告,并且找遍了网上也没能找出个究竟时,你是否觉得这个问题很难,难得以至于没人能回答呢?
&&&&&&&&其实这个只是初学者和粗心者才会犯的错误:没把C文件添加到项目中!
///另外,还有可能是因为存在没有被调用的已经定义的函数。
c/c++语言中有很多地方要用到extern,但是如果没有真正的了解它的意义,会给编程带来很大的麻烦,为了使大家少走弯路,特祥细的说明一下。
&&& 对于比较小的程序,一般只有一个c文件和一个头文件,全局变量我们通常会直接定义在c文件中,在程序之前加int i定义。如果要在头文件中定义有以下两种方法:用extern来声明:这一句只是对变量i进行声明,在c文件的程序之前必须加上int i进行定义。extern int i=0;这一句声明和定义都做了。
&&& 对于大一点的程序,有很多c文件和头文件,这个时候全局变量就必须在头文件中声明,然后在一个c文件中定义。如果在头文件中定义,则编译的时候会出现重复定义的错误。如果只有头文件中声明就会出现没有定义有警告。
&& *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
&& &&& SYMBOL:& K
&& &&& MODULE:& 222.obj (222)
& 出现上述错误则是因为变量k重复定义,把你的头文件中的变量定义前加extern,再在某一个c文件的程序之前再定义一下就可以了。
&&& *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
&&& SYMBOL:& K
&&& MODULE:& 111.obj (111)
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
&&& SYMBOL:& K
&&& MODULE:& 111.obj (111)
&&& ADDRESS: 000DH
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
&&& SYMBOL:& K
&&& MODULE:& 222.obj (222)
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
&&& SYMBOL:& K
&&& MODULE:& 222.obj (222)
&&& ADDRESS: 001FH
&& 这四个警告就是变量k在头文件中有声明,但是没有定义,只需在某一个c文件的程序之前定义一下即可。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:518805次
积分:7445
积分:7445
排名:第988名
原创:147篇
转载:368篇
评论:180条
(1)(3)(2)(1)(1)(1)(1)(2)(1)(6)(3)(2)(2)(1)(5)(2)(3)(1)(1)(9)(3)(3)(7)(10)(8)(3)(3)(4)(3)(1)(4)(4)(32)(2)(32)(23)(18)(18)(2)(8)(21)(22)(33)(19)(30)(32)(12)(20)(22)(28)(4)(12)(25)51单片机里面的,好多程序都是2个warning,没有error,这是为什么呢?下面是错误_百度知道
51单片机里面的,好多程序都是2个warning,没有error,这是为什么呢?下面是错误
: ?C_START MODULE;// 0.h&gt, 2 Warning(s).5秒
aa = _crol_(将aa循环左移1位赋值给aa
}} void delayms(uint xms){ uint i: STARTUP.obj (; while(1) {
P1 =#include &lt: 000DH Program Size?C_START MODULE;j &第一个灯亮
delayms(500);延时0;typed &#47,1); for(i = xms?C_STARTUP) *** WARNING L2;sbit led1 = P1^0.源码如下: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL;流水等&quot:#include &lt: STARTUP;void delayms(uint xms);intrins?C_STARTUP) ADDRESS: data=9;/i --)
for(j = 110.h&gt.0 xdata=0 code=15 &&#47: UNRESOLVED EXTERNAL SYMBOL SYMBOL;reg52;j --).;Target 1'&#47,j;i &uint aa = 0; 0..obj (. *** WARNING L1; - 0 Error(s);void main(void){ aa = 0xfeBuild target &#39
提问者采纳
确定一下你在编译的时候源文件确实被添加到工程里面了
提问者评价
其他类似问题
按默认排序
其他3条回答
应该是你宏定义的问题“typed”,这句话有问题,改为#define
unsigned int uint
把 STARTUP.A51,删除即可。
STARTUP.A51在哪里,代码里没有
在你的项目组里面,删除它。他们说的都不对。不是你的项目里面缺了什么,而是,你弄多了什么。参考这个问题的错误提示与解决方法:
你缺了这个文档
STARTUP.obj
具体编译过程从建立工程,到产生hex文件能不能说下,给个能用的链接也行,keil4的
你去找那个文档来就行了。.,c .obj 都可以
51单片机的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C51 启动代码问题 加急!!!_百度知道
C51 启动代码问题 加急!!!
MODULE?需要改什么.c:
STARTUP.&quot..compiling CRC;assembling STARTUP:
STARTUP.c.obj (.*** WARNING L1;ProToWheelDetection&#39?C_STARTUP)
ADDRESS.: REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL..c....?需要连接OBJ文件.;...c.compiling rs232.compiling RESET?C_STARTUP)*** WARNING L2.linking..c;wheel detection&quot:
...;Output&#92: 0B31Hcreating hex file from &quot.;wheel detection&quot?Build target &#39?B_SWITCH0
MODULE..A51.compiling Delay:
: UNRESOLVED EXTERNAL SYMBOL
SYMBOL.compiling main..;Output&#92..c.c.compiling st.compiling Control我的程序加入启动代码后 就是0错误2警告
而且烧录到单片机中不能正确执行如果去掉启动代码
则0错误0警告 而且烧录到单片机中可以正常执行 这是为什么 加入启动代码需要设置什么, 2 Warning(s).obj (; - 0 Error(s).
//f.hiphotos.baidu.hiphotos://f.baidu.jpg" esrc="/zhidao/wh%3D600%2C800/sign=b89e6ac220afad64a6afc6a5ce4cb080.jpg" target="_blank" title="点击查看大图" class="ikqb_img_alink"><img class="ikqb_img" src="http问题已解决.com/zhidao/wh%3D450%2C600/sign=45eebdaa720e0cf3a0a246ff3f76de29/f636afc6a5ce4cb080.hiphotos。.com/zhidao/pic/item/f636afc6a5ce4cb080.baidu。<a href="http://f。
提问者采纳
可能是与启动代码中有重名的,
提问者评价
谢谢 是跳转问题解决了
其他类似问题
c51的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁单片机编译出错,求指点。。_百度知道
单片机编译出错,求指点。。
a&quot?C_INIT)
ADDRESS;C51&#92:
C?C_INIT)*** WARNING L2;LIB&#92.0 xdata=0 code=144&quot: 080DHProgram Size*** WARNING L1;KEIL&#92;C51S:&#92:
MODULE;LIB&#92.LIB (.LIB (:
MODULE;C51S:
C: UNRESOLVED EXTERNAL SYMBOL
SYMBOL;C51&#92, 2 Warning(s): REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL;KEIL&#92; - 0 Error(s): data=9:&#92
我有更好的答案
按默认排序
这个只有警告,定义的变量或者时序,没有错误啊,基本就是main函数之外的函数有问题
其他类似问题
单片机的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 reference 的文章

 

随机推荐