报错:重复定义。为什么?该怎么解决

报错:重复定义。为什么?在app1.h中定义全局变量doublea10doublea20然后在app2.h中引入全局变量externdo

报错:重复定义。为什么?
在app1.h中定义全局变量
double   a1   =   0;
double   a2   =   0;
然后在app2.h中引入全局变量
extern   double   a1;
extern   double   a2;
---------------------------------
这样编译后会报错:重复定义
请问是怎么回事?
高人解释一下

[解决办法]
出错的原因可能是你在多个*.cpp文件中包含了app1.h头文件。
可使用下面的方法
#ifndef XXXXXX
#define XXXXXX
double a1 = 0;
double a2 = 0;
#endif