C++ VS2010 error:LNK2005 已经在*.obj中定义

【问题】


>> : error LNK2005: ×××× (★★★★) 已经在 ※※※.obj 中定义

fatal error LNK1169: 找到一个或多个多重定义的符号


【可能的原因】


当第一个使用该头文件的.cpp文件生成.obj的时,int i 已经定义。当另外一个使用这个头文件的.cpp再次[单独]生成.obj的时候,int i 又被定义。然后两个obj被另外一个.cpp也include 这个头的,连接在一起,就会出现重复定义.



【解决】

通常是由于在.h文件里定义了此变量,移动到.cpp文件里即可,并在使用到这个变量的cpp文件中加上extern int ID。

你可能感兴趣的:(Visual,Studio)