CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

有关LNK2005错误的求救。

楼主h926688(-Format-.Create.E.Studio)2005-06-03 17:59:08 在 C/C++ / C++ 语言 提问

我在DBConnect.h里实现了有关ADO数据库连接的一个类及其函数实现,  
  然后在工程项目中的其中一个   LoginDlg.cpp   中   #include   "DBConnect.h"  
  一切没问题。可当要在另一个   WorkThread.cpp   中   #include   "DBConnect.h" 时,就报以下错误。  
   
  --------------------Configuration:   Remote   -   Win32   Release--------------------  
  Compiling...  
  WorkThread.cpp  
  f:\projects\3.omc\nowdo\aa_release\remote\msado15.tlh(407)   :   warning   C4146:   unary   minus   operator   applied   to   unsigned   type,   result   still   unsigned  
  Linking...  
  WorkThread.obj   :   error   LNK2005:   "public:   void   __thiscall   CSmartDatabase::DBInitialization(void)"   (?DBInitialization@CSmartDatabase@@QAEXXZ)   already   defined   in   LoginDlg.obj  
  WorkThread.obj   :   error   LNK2005:   "public:   void   __thiscall   CSmartDatabase::DBClose(void)"   (?DBClose@CSmartDatabase@@QAEXXZ)   already   defined   in   LoginDlg.obj  
  WorkThread.obj   :   error   LNK2005:   "public:   void   __thiscall   CSmartDatabase::DBSqlExecute(class   CString,class   CString)"   (?DBSqlExecute@CSmartDatabase@@QAEXVCString@@0@Z)   already   defined   in   LoginDlg.obj  
  WorkThread.obj   :   error   LNK2005:   "public:   void   __thiscall   CSmartDatabase::DBSqlExecuteActLog(class   CString,class   CString)"   (?DBSqlExecuteActLog@CSmartDatabase@@QAEXVCString@@0@Z)   already   defined   in   LoginDlg.obj  
  ../AA_Release/Remote.exe   :   fatal   error   LNK1169:   one   or   more   multiply   defined   symbols   found  
  Error   executing   link.exe.  
   
  Remote.exe   -   5   error(s),   1   warning(s)  
  -----------------------------------------------------------------------------  
   
    LoginDlg.cpp   与   WorkThread.cpp   都包含有以下头文件:  
   
  #include   "stdafx.h"  
  #include   "Remote.h"  
  #include   "LoginDlg.h" //   或:#include   "WorkThread.h"  
  #include   "DBConnect.h"  
   
  查了一下   LNK2005   错误:  
  ---------------------------------------------Visual   C++   概念:生成   C/C++   程序    
   
  链接器工具错误   LNK2005  
  在对象中已定义符号  
  以修饰形式显示的给定   symbol   被多次定义。  
  可能的原因    
  不慎同时与单线程库和多线程库链接。确保应用程序项目文件只包括适当的库,并且任何第三方库已适当创建了单线程或多线程版本。    
  在也使用   /clr   时混合静态库和动态库。    
  该符号为封装函数(通过用   /Gy   编译创建),包含在多个文件中,但在各编译间已改变。重新编译所有包含   symbol   的文件。    
  以不同的形式在不同库中的两个成员对象中定义了该符号,并且使用了这两个成员对象。    
  某个绝对符号被定义两次,而每次定义的值不同。    
  头文件声明并定义了变量。可能的解决方案有:    
  在   .h   中声明变量:extern   BOOL   MyBool;,然后在   .c   或   .cpp   文件中向它分配:BOOL   MyBool   =   FALSE;。    
  将变量声明为   static。    
  将变量声明为   selectany。    
  当将   uuid.lib   与定义   GUID   的其他   .lib   文件(例如   oledb.lib   和   adsiid.lib)一起使用时。例如:    
  oledb.lib(oledb_i.obj)   :   error   LNK2005:   _IID_ITransactionObject  
  already   defined   in   uuid.lib(go7.obj)  
  若要修复,请将   /FORCE:MULTIPLE   添加到链接器命令行选项,并确保   uuid.lib   是引用的第一个库。    
  有关更多信息,请参见知识库文章:    
  Q148652,PRB:   LNK2005   Errors   When   Link   C   Run-Time   Libraries   Are   Linked   Before   MFC   Libraries。    
  Q140440,FIX:   Global   Overloaded   Delete   Operator   Causes   LNK2005。    
  Q184235,PRB:   LNK2005   Errors   on   New   and   Delete   When   Defining   _ATL_MIN_CRT。    
  该错误之后为致命错误   LNK1169。  
  ---------------------------------------------  
   
  请教应该如何解决才不会出现错误? 问题点数:20、回复次数:1Top

1 楼CMyMfc(星际人生:=E.F=FlyForEver)回复于 2005-06-03 19:12:15 得分 20

把类及其函数实现放在CPP中,   类的声明和函数声明放在.h文件中  
  并在.h文件的开头加上  
  #ifndef   __XXX_H  
  #define   __XXX_H  
   
  在.h文件的屁股上加上  
  #endifTop

相关问题

  • 有关mswrd632.wp错误!
  • LNK关联文件错误
  • 有关VB编程错误!
  • 有关ARMI的错误!!
  • 有关 KERN-EXEC 3 错误!!!
  • 链接错误,LNK:2001 unresolved external symbol ...
  • 有关Microsoft VBScript 编译器错误 错误 '800a0400' 缺少语句的错误
  • ****有关Sql Server的错误处理?***
  • 有关“Project rule not found"错误的问题!
  • 有关unresolved external on _WinMain@16错误

关键词

  • 文件
  • 函数
  • cpp
  • csmartdatabase
  • lnk2005
  • logindlg
  • 定义
  • 错误
  • workthread
  • objworkthread

得分解答快速导航

  • 帖主:h926688
  • CMyMfc

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo