Symbol aDST_Buffer multiply defined (by bsp_dma_mtm.o and main.o) 问题解决

情况说明

在学习STM32的DMA时, 编译链接时出现了两个错误

Symbol aDST_Buffer multiply defined (by bsp_dma_mtm.o and main.o)
Symbol aSRC_Const_Buffer multiply defined (by bsp_dma_mtm.o and main.o)


原因分析

原因是我把两个数组放在了<.h>定义, 多个文件包含此<.h>则造成了重复定义(multiply defined)

Symbol aDST_Buffer multiply defined (by bsp_dma_mtm.o and main.o) 问题解决

<.h>中只能声明, 不能定义
需要在<.c>中定义, 在<.h>中声明


解决方法

  1. 在<.c>文件中定义
Symbol aDST_Buffer multiply defined (by bsp_dma_mtm.o and main.o) 问题解决
  1. 在<.h>文件中用extern声明
Symbol aDST_Buffer multiply defined (by bsp_dma_mtm.o and main.o) 问题解决
  1. 编译成功

SHOUT OUT TO

错误问题:Symbol xxx multiply defined
extern使用方法总结!