只前我建了一个工程,一直都可以Build过, 不过我什么都不动,然后在Build就Build不过去了?我怀疑是我设置有问题,然后又建一个工程,之前也是一直都可以Build过,不过之后就一直Build不过去了?真是太奇怪了!!!!错误提示:
error LNK2005: _DllMain@12 already defined in LIBCMT.lib(dllmain.obj)
error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in LIBCMT.lib(delete.obj)
fatal error LNK1169: one or more multiply defined symbols found那为大侠知道是怎么回事吗?(是static DLL工程)

解决方案 »

  1.   

    什么意思?刚有新建一个工程,加上想要的东西,OK,可以Build过去,
    然后在打开,奇怪了,出现以上错误!
      

  2.   

    一样!之前Rebuild All都OK,关掉重新开起来就build不过去了!
      

  3.   

    包含了哪些VC和SDK的头文件?
      

  4.   

    包含的都加进去了,太奇怪了!
    刚才又试了一下,第一次Build都没有问题,但是关掉再打开就又有问题了,还是存在这样的问题??error LNK2005: _DllMain@12 already defined in LIBCMT.lib(dllmain.obj) 
    error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in LIBCMT.lib(delete.obj) 
    fatal error LNK1169: one or more multiply defined symbols found 
      

  5.   

    工程设置有问题了,我也有遇到过,不晓得是不是用一种状况了:
    下面的文章是我遇到这种情况的详细说明:
    http://blog.csdn.net/na_he/archive/2008/04/03/2246676.aspx
    希望能帮到你了,呵呵!
      

  6.   

    错误消息 
    对象中已定义符号
    以修饰形式显示的给定 symbol 被多次定义。有关更多信息,请参见知识库文章: “在 MFC 库之前链接 Link C 运行时库时出现 LNK2005 错误”(Q148652)“Global Overloaded Delete Operator Causes LNK2005”(全局重载的删除运算符导致 LNK2005)(Q140440)“LNK2005 Errors on New and Delete When Defining _ATL_MIN_CRT”(定义 _ATL_MIN_CRT 时出现针对新建和删除的 LNK2005 错误)(Q184235)。知识库文章位于 MSDN Library CD-ROM 中或 http://support.microsoft.com/default.aspx?ln=zh-cn 上。该错误之后为错误 LNK1169。通过检查下面的可能原因进行修复
    1.在也使用 /clr 时混合静态库和动态库。 
    2.该符号为封装函数(通过用 /Gy 编译创建),包含在多个文件中,但在各编译间已改变。重新编译所有包含 symbol 的文件。 
    3.以不同的形式在不同库中的两个成员对象中定义了该符号,并且使用了这两个成员对象。 
    4.某个绝对符号被定义两次,而每次定义的值不同。 
    5.头文件声明并定义了变量。可能的解决方案包括: 在 .h 中声明变量:extern BOOL MyBool;,然后在 .c 或 .cpp 文件中向它分配:BOOL MyBool = FALSE;。 将变量声明为 static。 将变量声明为 selectany。 
    6.当将 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 是引用的第一个库。 
      

  7.   

    在编译选项中排除对libcmt.lib的引用
      

  8.   

    还真是奇怪,把Debug目录里的文件全删除一下看看。
      

  9.   

    在编译选项中排除对libcmt.lib的引用
    把Debug目录里的文件全删除一下看看。这两重方法我之前都试过,还是不能解决!
      

  10.   

    TO: na_he试了你上面所说了,现在Debug版没有问题了,OK了,
    不过Release版还存在这样的问题:error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in LIBCMT.lib(delete.obj)  
    fatal error LNK1169: one or more multiply defined symbols found  
      

  11.   

    在编译选项中排除对libcmt.lib的引用怎么排除?
      

  12.   

    编译选项中找,有/NODEFAULTLIB选项