Symbol xxx multiply defined (by xxx1.o and xxx2.o).

在stm32systick学习中,systick.h中写了如下代码:


#ifndef SYSTICK_H
#define SYSTICK_H

#include"stm32f10x.h"

unsigned int TimingDelay;

void TimingDelay_Decrement(void);
void Delay(unsigned int value);

#endif


发现报错:Error: L6200E: Symbol TimingDelay multiply defined (by int.o and main.o).等

原来是因为定义了变量TimingDelay,导致报错。

将该变量定义在main.c文件中,并将systick.h文件中的语句改为

extern unsigned int TimingDelay;即可编译通过

为什么捏??


版权声明:本文为Al_shawn原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。