vc6.0 lnk 2005连接错误处理

来源:互联网 发布:长相评分软件 编辑:程序博客网 时间:2024/06/18 13:33

error LNK2005: “***”already defined in XXX.obj【解决】

今天花了很长时间找了一个错误,【在类的头文件中不能#include包含全局变量的*.h文件】!~

编写代码时,没有注意,将包含全局变量的#include "MyGlobalSetting.h",结果出现了一堆LNK2005的链接错误。例如:
error LNK2005: "char * g_szFeaFileDir" () already defined in XXX.obj
的链接错误。

开始还以为是VC环境配置错了呢,汗啊!忙活了好一会!~

当将#include "MyHaarGlobalSetting.h"包含在“*.cpp”中时,就可以正常通过!

===============================================================================

上一次草草的下了总结:在类的头文件中不能#include【包含全局变量的*.h文件】!~

那个总结是错误的!!!
实质上是因为我在全局变量所在的头文件中定义的那个字符串为一般的全局变量,而非“常量”,
因此便出现了编译性的错误,当把变量szFeaFileDir由char g_szTXTListDir[] = "C:\\FaceTest\\";
改成const char g_szTXTListDir[] = "C:\\FaceTest\\";,在任何地方#include这个头文件都不会出错了!~

 

原创粉丝点击