c++调试记录:error LINK2005: XXXX已经在 .obj 中定义"

来源:互联网 发布:加拿大生物专业知乎 编辑:程序博客网 时间:2024/06/05 02:53

        当项目代码比较多,文件也比较多的时候,这个问题真的非常棘手,可能会耗费大量的时间来排查错误。

     问题出现的原因:在.h文件中定义了变量。然后A.cpp包含了该.h,B.cpp包含了该.h,于是在链接的时候,生成A.obj,B.obj,但是 .h中定义的变量会在这两个obj中又被定义,所以,导致了这个LINK2005错误。

    解决方法:不要在.h中定义变量!!在.h中只声明函数,类。把具体的实现都必须要放到.cpp中!!!!