在StdAfx.h中定义了一个类,并声明了一个全局变量。在MainView.cpp中 extern该变量 并使用了它。
ReildAll出现以下错误 
StdAfx.obj : error LNK2005: "class _MyCout  MyCout" (?MyCout@@3V_MyCout@@A) already defined in MainView.obj
Debug/XXa.exe : fatal error LNK1169: one or more multiply defined symbols found
将MainView.cpp中把使用该变量的地方注释掉
F7没错误
将上面说说的注释符删掉 也就是说回到原来的样子
F7一个错误
MainView.obj : error LNK2005: "class _MyCout  MyCout" (?MyCout@@3V_MyCout@@A) already defined in StdAfx.obj
再F7一次(没变化)就没错误了。。没可用分 大家将就点吧。

解决方案 »

  1.   

    别的地方的回答
    全局变量一般声明在h中,定义在cpp中,这样可以避免这种情况。 还有h文件要加上预编译guard 
      

  2.   

    extern这个外部变量确实一般定义在.h中,不过不用预编译吧
    StdAfx.obj   :   error   LNK2005:   "class   _MyCout     MyCout"   (?MyCout@@3V_MyCout@@A)   already   defined   in   MainView.obj 意思你重复定义了,再仔细看看
      

  3.   

    你是不是既extern又引用了该头文件?
      

  4.   

    我是菜鸟 
    等 级: 
     发表于:2007-12-22 11:06:49 5  楼  得分:  
    你是不是既extern又引用了该头文件? 
     
     是啊。。我把定义变量放在了stdafx.cpp中就没错了