在用keil编辑的时候提示这两条,怎么都找不出原因。

.objDebugmain.axf:Error:L6200E:Symbol__ARM_use_no_argvmultiplydefined(bylcd.oandmain.... .objDebugmain.axf: Error: L6200E: Symbol __ARM_use_no_argv multiply defined (by lcd.o and main.o)..objDebugmain.axf: Error: L6200E: Symbol main multiply defined (by lcd.o and main.o).请问这是那出现的问题啊。我找了半天也没找到原因。 展开
 我来答
电子科技小百科
高粉答主

2020-05-08 · 繁杂信息太多,你要学会辨别
知道答主
回答量:4367
采纳率:0%
帮助的人:72.4万
展开全部

回复1# yfg123 本质,就是已经定义了两个main函数,自己仔细找一下,看有没有两个定义。解决方法如下:

1、首先打开Keil,新建一个汇编语言文件,在其中输入汇编代码,同时在最开头加入。

2、将汇编源文件进行编译。可以看到,编译结果窗口输出了一连串的error A10: ATTEMPT TO DEFINE AN ALREADY DEFINED SYMBOL,每个ERROR都指向REG51.INC。

3、出现这种问题的原因在于REG51.INC对特殊寄存器进行了定义,选择汇编源文件,在弹出的列表中选择“Options for FIle:xxx”,其中xxx是具体的文件名。

4、在弹出的对话框中,找到Special Function Registers,将它下面的Define 8051 SFR Names取消勾选。

5、这时可以看到error A10: ATTEMPT TO DEFINE AN ALREADY DEFINED SYMBOL没有了。

惠灵顿2012
2017-07-20
知道答主
回答量:1
采纳率:0%
帮助的人:975
展开全部
multiply defined指重复定义,说明存在变量在编译的过程中被至少两次定义。我遇到过的是我在common.h中定义了变量,然后其它.h文件又引用了common.h,这就使得keil每次编译其它.h时都会重复定义common.h中的变量,从而造成了重复定义(multiply defined)。本题为例,若存在led.h中有变量 char led0 =0这样的变量定义,在编写main.h的时候引用了#include “led.h”,编译就会出现重复定义。因此,建议将变量的定义放在.c文件中,这样若要在其它.c文件使用该变量,可以使用extern关键字。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-13
展开全部
提示已经很清楚了,重复定义,在led和main两个文件中
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-13
展开全部
回复 1# yfg123 本质,就是你已经定义了两个main函数,你要自己仔细找一下,看有没有两个定义。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式