EDA365电子论坛网

标题: mdk5明明只定义了一遍int deng,为什么编译后会提示错误重复定义? [打印本页]

作者: xiananUZI    时间: 2021-11-18 11:07
标题: mdk5明明只定义了一遍int deng,为什么编译后会提示错误重复定义?

main.c 赋值
" m& Z' D# E% L9 K  ^deng=1;

inf.h定义. ^. i$ [, K3 l  \
int deng;

inf.c判断
  Y) \" u% v1 q, O/ Q% n9 {4 Zvoid iff(void){! ?0 L3 M- N0 K  g
if(deng==1){}
8 U( q& X! {0 J1 V0 V' ]- D}

test.c调用iff

为什么只定义了一遍的deng,会出错误提示重复定义。

Error: L6200E: Symbol deng multiply defined (by inf.o and main.o).
9 c; h) D/ K+ E! g! a. PError: L6200E: Symbol deng multiply defined (by test.o and main.o).

Not enough information to list image symbols.
& Q# t- A+ j  W! N+ [0 l4 U5 {Not enough information to list the image map./ R' x" U3 V+ ]
求解

( x9 l& }: s/ m$ b# D8 P

作者: nuiga    时间: 2021-11-18 13:10
应该是因为你在inf.h中定义了全局变量,main.c和inf.c都包含了inf.h这个头文件
作者: jspij1    时间: 2021-11-18 13:11
在编译时,因为每个c文件都会生成一个obj文件,你的main.o, 和inf.o都会包含deng这个全局变量的定义




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2