error LNK2005:...
hi all,
我最近在编译一个工程时遇到
inking...
B.obj : error LNK2005: "public: __thiscall C::C(unsigned int,unsigned int) " (??0B@QAE@II@Z) already defined in A.obj
main() 在A.cpp中,A包含B.h(及其他),B.h包含C.h,C.h在整个Source中只被#include一次,而且每个.h都有#ifndef保护,请问还有什么其他可能的原因?
[解决办法]
C::C(unsigned int,unsigned int)
重复定义
[解决办法]
有没有相互include ?
[解决办法]
不要在.h中进行包含.
把头文件包含放到cpp文件中去.
如果非要用到项目中其他头文件声明的类.
可在使用的头文件中提前声明一下即可:
class C;
class B {
C xx;
// others.
};