关于使用全局变量extern的有关问题,快要崩溃了!请各位师兄师姐们多多指点啊

关于使用全局变量extern的问题,快要崩溃了!请各位师兄师姐们多多指点啊!
定义写在第一个h对应的a.cpp文件里面BOOL  m_Num1[];,然后在这个a.h里面写extern BOOL m_Num1[];
其他所有要用到这个数组的cpp都直接include "a.h"
这个方法我试过了 可是仍然会出现下列问题:
Display2.obj : error LNK2001: unresolved external symbol "int * m_Num1" (?m_Num1@@3PAHA)
Debug/TestP.exe : fatal error LNK1120: 1 unresolved externals

我还尝试过将定义BOOL  m_Num1[]写在.h文件里,然后再其它cpp文件中声明extern BOOL m_Num1[];但是仍然会出现上述错误,反复试验了无数次,仍然这样,快要崩溃了!请各位师兄师姐们多多指点啊!
------最佳解决方案--------------------
BOOL m_Num1[100];
是不是没有加长度的原因啊
------其他解决方案--------------------
BOOL m_Num1[];这样定义全局变量是有漏洞的,应该赋初值,因为这样定义不能确定是分配多少内存空间,参照以下定义
BOOL m_Num1[2] = {TRUE, TRUE};
头文件描述
extern BOOL m_Num1[2];

------其他解决方案--------------------
定义时一定要有大小(2)
BOOL m_Num1[2] = {TRUE, TRUE};
头文件描述声明可以不要大小
extern BOOL m_Num1[];

------其他解决方案--------------------
同意三楼
------其他解决方案--------------------
这是链接错啊,你要在cpp文件中去“实现”它啊,不然肯定会导致链接错的;实现也就是你得给数组赋值啊
------其他解决方案--------------------
你那里是不是还有同名的变量,全局变量不要用m_打头,否则别人看你程序会吐血的,m是指member,成员变量,全局变量建议用g_打头代表Global。
------其他解决方案--------------------
我都试过上述各位的方法了,结果仍然弹出上述两种错误!是不是链接选项的设置问题!
------其他解决方案--------------------
请各位大哥们给我一个规范的实例,我重新做个小程序试试,我曾试过网上的一些案例程序,结果都出现了上述两个错误!
------其他解决方案--------------------
按3楼改了的话应该不会有错的。
1.看看是否有重名的变量;
2.清空项目,重新编译;
3.我也没有辙了。