multiple definition of `xxxx`解决方法

报错打印显示“a变量在def.h中多重定义了”,又说“第一次定义是在a变量在def.h文件中”。为什么我明明没有重复定义这些变量,还会报错呢?

仔细看这两行报错的最前面,显示是在C、D这两个不同的.o文件中的,就是说C.c 和D.c文件都include了def.h,它们各自编译成C.o和D.o文件时,都定义了def.h中的a变量,因此,造成了多重定义。

修改方法

1.我这里发现C、D文件中的D文件本次开发中不需要用到,就删除D文件即可解决

2.还可以将变量定义到C.c中,D.c中用extern

3.如果还不行,建议到该文件编译目录下先make clean一把再编译试试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值