关于Keil C51编译的问题

作者&投稿:系红 (若有异议请与网页底部的电邮联系)
keil C51程序编译的问题~

如果你的H头文件包含在每个.C文件中,那就是说你的每个.C文件都定义了sbuf[20],KEIL就会提示你说你的sbuff[20]重复定义。我理解的应该是这个问题吧?

解决办法,要么用条件编译区分sbuff的作用域,就是在哪些.c文件中使用。
要么在一个.c文件中定义sbuff,在H文件中用外部声明包含进去,比如:
extern unsigned char data char sbuf[20];这样在其他的.C文件中,sbuff是引用而不是定义了。

一般都是采用第二种方式,H文件只存放外部声明。

你那程序也不长啊,直接把程序发上来,发什么图片哪?
第二个图片显示的,没有错误了,只有一个警告,是因为调用那个延时子程序delay( ) 时,打错了一个字母,打成dalay 了。
另外提示:保存C程序的文件夹,最好不 要用汉字,而且文件夹的层数不要太多了,你这一共是五层文件夹,有两层还是汉字,编译时容易出错的。

COMMON.C(1): warning C500: LICENSE ERROR (R208: RENEW LICENSE ID CODE (LIC))
好像是说注册错误,要装破解版;
MAIN.C(9): error C202: 'TRO': undefined identifier第九行错误,应是TR0, O与0应区分

TRO改为TR0

破解的License与安装版本不符,不够格使用新安装的版本。另找个破解吧。

应该是你装的KEIL软件没有注册,卸载掉装个破解版的试试!


宁津县13758939405: Keil编写C51程序,编译问题请教 -
应俊海甘: 应该是这个函数uart0_init有函数原型,也就是说能被其他文件中的函数调用,但却不存在实际的函数体,所以链接时链接器找不到这个函数对应的代码段,就报警告了,而你试图右键看这个函数的定义时,就会跳出这个框.

宁津县13758939405: 求助:keil C51编译出错问题 -
应俊海甘: 段溢出,这个问题应该可以通过修改程序得到解决,具体来说就是将有关变量放到合适的段内,因为每个段的大小都是固定的,过大了就导致溢出,而溢出后的程序能否稳定运行,可能就要打上问号

宁津县13758939405: 我用keil c51仿真软件编的汇编程序,编译后显示目标没产生 -
应俊海甘: 作为新手,还是按照KEIL默认的安装路径安装吧(虽然这个路径是可以任意修改的). 你看看你的Keil是否装在了 C:\keil\ 这个文件夹下,,如果不是,你默认配置文件中的配置是找不到相应A51、C51、BL51等工具的.你可以尝试装到那路径下.另外,如果是没有注册过的KEIL,当程序超过2K时,会出现代码限制的错误,也是不能通过编译的,,,这个可以通过KEIL的注册机解决.其实当你遇到编译不能通过时,最好能把你的编译信息发上来,这样就能更好的了解你那里的情况.我的邮箱是 ppt1845@163.com 如果有问题,我有时间的话,可以帮助你.

宁津县13758939405: keil c51 液晶显示编程求助 -
应俊海甘: 程序功能上没有任何差别,也没有其它错误.提供3个可能的分析方向:1、采用循环的模式与逐个送显的模式唯一差别在每次调用的时间间隔上,循环模式由于每次需要做判断和步进+1操作,相对时间要长些,虽然几率不大,万一碰巧此时产生...

宁津县13758939405: 单片机 keil 编译问题 -
应俊海甘: Program Size: data=148.0 xdata=0 code=2172 Target not created 注意这个,你用的什么单片机??器件类型选的哪一款?------------------------------- 你看看工程的MCU是不是选错了,KEIL说的是你MCU的内存不够用,是不是选了标准的51?---------------------------------- 不用扩展,你的MCU是够用的.可能是你选错了器件类型.编译器认为你的MCU没有那么大内存

宁津县13758939405: keil c51编译出现警告 -
应俊海甘: 1主函数(main)写重复了. 2 地址空间溢出

宁津县13758939405: 51单片机使用KEIL C51 数据碰到编译异常 -
应俊海甘: AAA是个long型数据吧? 问这样的问题之前,你应当先了解一下Keil Cx51的默认数据类型.Cx51在不修改项目配置时,计算时默认的数据类型是int型的(有符号整型),所以在没有类型指定的前提下,9600*4会计算得到溢出的结果变成-27136(0x9600),接下来执行赋值操作时promote类型为四字节,即0xFFFF9600.要想得到正确的结果,应当加上强制类型转换: AAA = (long)9600*4;

宁津县13758939405: 在keil中,编译时出现错误:Error:fail to execute' C:\keil\C51\BIN\C51.EXE'是怎么回事.急! -
应俊海甘: 查查编译器路径设置,如果设置没错的话就可能感染病毒了

宁津县13758939405: keil C51怎么把C语言转成汇编 -
应俊海甘: C文件上点右键,点“Option for ...”,然后勾选右侧的“Generate Assembler SRC File”,就会生成对应文件名扩展名为.SRC的汇编文件了. 在调试界面点那个放大镜图标,或者菜单中点“View”然后点“Disassembly Windows”,就可用看到汇编代码了,这时按F10/F11单步执行的是每一句对应的汇编语句,而不是C语句. 点击工具栏上一个红色的"D",进入调试状态,再把鼠标点到c代码处,右键查看汇编代码,就可以看到所以c编译后的汇编代码了.

宁津县13758939405: 编译出现 - - - Error: can't execute 'D:\keil\C51\BIN\C51.EXE' -
应俊海甘: 编译出现--- Error: can't execute 'D:\keil\C51\BIN\C51.EXE'是设置错误造成的,解决方法为: 1、双击错误跟踪到报错的地方我们可以看到这里就是type定义的地方. 2、到新版的库文件中,注意要消除只读的设置. 3、然后在这个定义的上方补充定义这个宏. 4、#47-D: incompatible redefinition of macro "SCS_BASE" ,问题解决了.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网