编译的时候出现以下错误,是什么原因啊?(我只是在APP类的头文件里面定义了一些全局数组而已,另外在MFC里面从哪定义全局变量比较好)SearchPath.obj : error LNK2005: "int (* map4)[22]" (?map4@@3PAY0BG@HA) already defined in MainFrm.obj
SearchPath.obj : error LNK2005: "int (* map3)[22]" (?map3@@3PAY0BG@HA) already defined in MainFrm.obj
SearchPath.obj : error LNK2005: "int (* map2)[22]" (?map2@@3PAY0BG@HA) already defined in MainFrm.obj
SearchPath.obj : error LNK2005: "int (* map)[22]" (?map@@3PAY0BG@HA) already defined in MainFrm.obj
SearchPathDoc.obj : error LNK2005: "int (* map4)[22]" (?map4@@3PAY0BG@HA) already defined in MainFrm.obj
SearchPathDoc.obj : error LNK2005: "int (* map3)[22]" (?map3@@3PAY0BG@HA) already defined in MainFrm.obj
SearchPathDoc.obj : error LNK2005: "int (* map2)[22]" (?map2@@3PAY0BG@HA) already defined in MainFrm.obj
SearchPathDoc.obj : error LNK2005: "int (* map)[22]" (?map@@3PAY0BG@HA) already defined in MainFrm.obj
SearchPathView.obj : error LNK2005: "int (* map4)[22]" (?map4@@3PAY0BG@HA) already defined in MainFrm.obj
SearchPathView.obj : error LNK2005: "int (* map3)[22]" (?map3@@3PAY0BG@HA) already defined in MainFrm.obj
SearchPathView.obj : error LNK2005: "int (* map2)[22]" (?map2@@3PAY0BG@HA) already defined in MainFrm.obj
SearchPathView.obj : error LNK2005: "int (* map)[22]" (?map@@3PAY0BG@HA) already defined in MainFrm.obj
Water.obj : error LNK2005: "int (* map4)[22]" (?map4@@3PAY0BG@HA) already defined in MainFrm.obj
Water.obj : error LNK2005: "int (* map3)[22]" (?map3@@3PAY0BG@HA) already defined in MainFrm.obj
Water.obj : error LNK2005: "int (* map2)[22]" (?map2@@3PAY0BG@HA) already defined in MainFrm.obj
Water.obj : error LNK2005: "int (* map)[22]" (?map@@3PAY0BG@HA) already defined in MainFrm.obj
Debug/SearchPath.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.

解决方案 »

  1.   

    不要在头文件里定义变量等,而在“.cpp”文件里定义,其他“.cpp”文件里调用则用extern声明。
      

  2.   

    "int (* map4)[22]" 的定义出现多次;
    可能是在某个头文件中定义的,然后该头文件被多次包含。
    可以在某.cpp文件中定义,然后在头文件中用extern声明。
      

  3.   

    我在某文件里面定义了全局变量const int width但是在其他文件里面无法用extern来获取,这是为什么啊?
      

  4.   

    可能是应该包含在CPP文件里的却包含到H文件了
      

  5.   

    回复人: crystal521(水晶泪) ( ) 信誉:165  2005-03-12 20:38:00  得分: 0  
     
     
       定义一个全局变量的头文件,然后把他包含到你要用的文件中
      
     这种方法行得通吗?