multiply defined

multiply defined

多重定义,就是一个变量被定义了两次,或者定义一次被编译器编译了两次。
如下图所示的,有多个被重复定义的。。。。。
遇见是真他娘的难受

在这里插入图片描述

multiply defined_第1张图片

解决办法

自己写变量定义时

这种问题一般是变量定义问题,解决办法
	1、变量定义在.c文件中。如果是结构体的话,结构体要在.h文件,结构体变量在.c文件中。
	2、在.h文件中进行extern声明
	3、其他文件include的时候只导入.h,不要include “*.c”

multiply defined_第2张图片

使用别人代码或者SDK时

这才是TM的痛苦的,有时候不知道改了哪里,突然蹦出来这种情况。
很大情况下是多次导入了某个头文件,看下图中圈出来的右边,在这些文件中
找找问题。

multiply defined_第3张图片

遇见过最恶心的情况

在进行项目使用的SDK从低版本生的稍微高点的时候,准备将新功能也添加进去。
但是出现了一个戏剧性:
	就是有个关键文件,在低版本和高版本中都起到关键作用,但是两个在其他版
	本冲突,TM的最后,直接将两个比对一下,将高版本部分替换到低版本中,TM的竟然好了。。。。。。。。。。。。。。。。。
	
	具体就是将nrfx的15版本sdk将某些文件抽出来的时候,好像是ble_glue.h文件在作怪

multiply defined_第4张图片

你可能感兴趣的:(nrf52832,c语言,iot,单片机,物联网)