Keil编译错误:Error: L6200E: Symbol ****** multiply defined (by *** and ***)

在移植正点原子OV5640的驱动程序时,遇到了multiply defined错误。错误报表如下:

Keil编译错误:Error: L6200E: Symbol ****** multiply defined (by *** and ***)_第1张图片

         出现这么多错误,满脑子的问号❓首先检查了下这几个出现错误的命名,没有出现重定义,定义的位置仅在相应的.h文件中。

        由于移植时把所有的头文件放在了一个自定义的头文件中,那就把这几个头文件都转移到了ov5640.h的头文件下,再次编译,错误依旧...

        寻求度娘帮助,有网友说明了两个原因,一个是确实出现了重定义。另一个原因是因为keil不支持相应.h文件放在其他.h文件下,需要转移到使用的.c文件下。尝试了下转移到应用的.c文件下,问题解决!

         由于长期使用VS软件做编程,习惯上将引用放置于相应头文件中,导致移植中这种莫名的错误。那问题就是,为何不能放置于.h文件夹下引用,仅仅是不支持吗...表示不理解。

你可能感兴趣的:(STM32,stm32,单片机)