以前好像是用VC6写的,现在用VS2010转过,Debug版本编译提示很多警告信息,不过可以正常生成。Release版本编译时报错如下:
10>LINK : warning LNK4075: 忽略“/INCREMENTAL”(由于“/LTCG”规范)
10>LuxuserD.lib(Luxuser.obj) : warning LNK4075: 忽略“/EDITANDCONTINUE”(由于“/OPT:ICF”规范)
10>nafxcwd.lib(objcore.obj) : error LNK2005: "public: static struct CRuntimeClass const CObject::classCObject" (?classCObject@CObject@@2UCRuntimeClass@@B) 已经在 nafxcw.lib(objcore.obj) 中定义
10>nafxcwd.lib(objcore.obj) : error LNK2005: "public: virtual struct CRuntimeClass * __thiscall CObject::GetRuntimeClass(void)const " (?GetRuntimeClass@CObject@@UBEPAUCRuntimeClass@@XZ) 已经在 nafxcw.lib(objcore.obj) 中定义
10>nafxcwd.lib(objcore.obj) : error LNK2005: "public: int __thiscall CObject::IsKindOf(struct CRuntimeClass const *)const " (?IsKindOf@CObject@@QBEHPBUCRuntimeClass@@@Z) 已经在 nafxcw.lib(objcore.obj) 中定义
10>nafxcwd.lib(objcore.obj) : error LNK2005: "class CObject * __cdecl AfxDynamicDownCast(struct CRuntimeClass *,class CObject *)" (?AfxDynamicDownCast@@YAPAVCObject@@PAUCRuntimeClass@@PAV1@@Z) 已经在 nafxcw.lib(objcore.obj) 中定义
10>nafxcwd.lib(objcore.obj) : error LNK2005: "public: class CObject * __thiscall CRuntimeClass::CreateObject(void)" (?CreateObject@CRuntimeClass@@QAEPAVCObject@@XZ) 已经在 nafxcw.lib(objcore.obj) 中定义
10>nafxcwd.lib(objcore.obj) : error LNK2005: "public: int __thiscall CObject::IsSerializable(void)const " (?IsSerializable@CObject@@QBEHXZ) 已经在 nafxcw.lib(objcore.obj) 中定义
10>nafxcwd.lib(objcore.obj) : error LNK2005: "void __stdcall AfxClassInit(struct CRuntimeClass *)" (?AfxClassInit@@YGXPAUCRuntimeClass@@@Z) 已经在 nafxcw.lib(objcore.obj) 中定义
10>nafxcwd.lib(objcore.obj) : error LNK2005: "public: int __thiscall CRuntimeClass::IsDerivedFrom(struct CRuntimeClass const *)const " (?IsDerivedFrom@CRuntimeClass@@QBEHPBU1@@Z) 已经在 nafxcw.lib(objcore.obj) 中定义
10>nafxcwd.lib(appinit.obj) : error LNK2005: "int __stdcall AfxWinInit(struct HINSTANCE__ *,struct HINSTANCE__ *,char *,int)" (?AfxWinInit@@YGHPAUHINSTANCE__@@0PADH@Z) 已经在 nafxcw.lib(appinit.obj) 中定义
10>nafxcwd.lib(appinit.obj) : error LNK2005: "public: void __thiscall CWinApp::SetCurrentHandles(void)" (?SetCurrentHandles@CWinApp@@QAEXXZ) 已经在 nafxcw.lib(appinit.obj) 中定义
10>nafxcwd.lib(appinit.obj) : error LNK2005: "unsigned int __stdcall AfxGetFileName(char const *,char *,unsigned int)" (?AfxGetFileName@@YGIPBDPADI@Z) 已经在 nafxcw.lib(appinit.obj) 中定义
10>nafxcwd.lib(afxmem.obj) : error LNK2005: "int (__cdecl* _afxNewHandler)(unsigned int)" (?_afxNewHandler@@3P6AHI@ZA) 已经在 nafxcw.lib(afxmem.obj) 中定义
10>nafxcwd.lib(afxmem.obj) : error LNK2005: "public: static void * __stdcall CObject::operator new(unsigned int)" (??2CObject@@SGPAXI@Z) 已经在 ChildFrm.obj 中定义
10>nafxcwd.lib(afxmem.obj) : error LNK2005: "public: static void __stdcall CObject::operator delete(void *)" (??3CObject@@SGXPAX@Z) 已经在 AddStdFile.obj 中定义
10>nafxcwd.lib(afxmem.obj) : error LNK2005: "public: static void __stdcall CObject::operator delete(void *,void *)" (??3CObject@@SGXPAX0@Z) 已经在 nafxcw.lib(wincore.obj) 中定义
10>nafxcwd.lib(afxmem.obj) : error LNK2005: "int __cdecl AfxNewHandler(unsigned int)" (?AfxNewHandler@@YAHI@Z) 已经在 nafxcw.lib(afxmem.obj) 中定义
10>nafxcwd.lib(afxmem.obj) : error LNK2005: "int (__cdecl*__stdcall AfxGetNewHandler(void))(unsigned int)" (?AfxGetNewHandler@@YGP6AHI@ZXZ) 已经在 nafxcw.lib(afxmem.obj) 中定义
10>nafxcwd.lib(afxmem.obj) : error LNK2005: "int (__cdecl*__stdcall AfxSetNewHandler(int (__cdecl*)(unsigned int)))(unsigned int)" (?AfxSetNewHandler@@YGP6AHI@ZP6AHI@Z@Z) 已经在 nafxcw.lib(afxmem.obj) 中定义
10>nafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) 已经在 nafxcw.lib(afxmem.obj) 中定义
10>nafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) 已经在 nafxcw.lib(afxmem.obj) 中定义
10>nafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new[](unsigned int)" (??_U@YAPAXI@Z) 已经在 nafxcw.lib(afxmem.obj) 中定义
10>nafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete[](void *)" (??_V@YAXPAX@Z) 已经在 nafxcw.lib(afxmem.obj) 中定义
10>libcmtd.lib(dbgheap.obj) : error LNK2005: __heap_alloc 已经在 libcmt.lib(malloc.obj) 中定义
10>libcmtd.lib(dbgheap.obj) : error LNK2005: __recalloc 已经在 libcmt.lib(recalloc.obj) 中定义
10>libcmtd.lib(dbgheap.obj) : error LNK2005: __expand 已经在 libcmt.lib(expand.obj) 中定义
10>libcmtd.lib(dbgheap.obj) : error LNK2005: __msize 已经在 libcmt.lib(msize.obj) 中定义
10>libcmtd.lib(dbghook.obj) : error LNK2005: __crt_debugger_hook 已经在 libcmt.lib(dbghook.obj) 中定义
10>libcmtd.lib(isctype.obj) : error LNK2005: __isctype_l 已经在 libcmt.lib(isctype.obj) 中定义
10>libcmtd.lib(isctype.obj) : error LNK2005: __isctype 已经在 libcmt.lib(isctype.obj) 中定义
10>atlsd.lib(Externs.obj) : error LNK2005: "char const * const g_pszUpdateEventName" (?g_pszUpdateEventName@@3PBDB) 已经在 atls.lib(Externs.obj) 中定义
10>atlsd.lib(Externs.obj) : error LNK2005: "char const * const g_pszAllocFileMapName" (?g_pszAllocFileMapName@@3PBDB) 已经在 atls.lib(Externs.obj) 中定义
10>atlsd.lib(Externs.obj) : error LNK2005: "char const * const g_pszKernelObjFmt" (?g_pszKernelObjFmt@@3PBDB) 已经在 atls.lib(Externs.obj) 中定义
10>atlsd.lib(Externs.obj) : error LNK2005: "class CAtlAllocator g_Allocator" (?g_Allocator@@3VCAtlAllocator@@A) 已经在 atls.lib(Externs.obj) 中定义
10>nafxcw.lib(nolib.obj) : warning LNK4098: 默认库“nafxcwd.lib”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
10>libcmt.lib(crt0init.obj) : warning LNK4098: 默认库“libcmtd.lib”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
10>.\..\_Output\Release\Luxus.exe : fatal error LNK1169: 找到一个或多个多重定义的符号
10>
10>生成失败。
10>

解决方案 »

  1.   

    看看debug与release版本的配置,应该配置的lib文件不一样!
      

  2.   

    清除一下试试,是不是有lib库文件的配置没弄好?
      

  3.   

    不知道怎么回事 现在可以编译成功了,可能引入了VC6编译的lib 现在有个警告信息10>  正在生成代码...
    10>LuxuserD.lib(Luxuser.obj) : warning LNK4099: 未找到 PDB“vc70.pdb”(使用“LuxuserD.lib(Luxuser.obj)”或在“D:\Lexus\Lexus\_Output\Debug\vc70.pdb”中寻找);正在链接对象,如同没有调试信息一样
    10>Manifest:
    10>  正在删除文件“.\..\_Intermediate\Debug\Lexus\Lexus.exe.embed.manifest”。
    10>LuxuserD.lib(Luxuser.obj) : warning LNK4099: 未找到 PDB“vc70.pdb”(使用“LuxuserD.lib(Luxuser.obj)”或在“D:\Lexus\Lexus\_Output\Debug\vc70.pdb”中寻找);正在链接对象,如同没有调试信息一样
    10>  Lexus.vcxproj -> D:\Lexus\Lexus\lexus\.\..\_Output\Debug\Lexus.exe
    10>FinalizeBuildStatus:
    10>  正在删除文件“.\..\_Intermediate\Debug\Lexus\Lexus.unsuccessfulbuild”。
    10>  正在对“.\..\_Intermediate\Debug\Lexus\Lexus.lastbuildstate”执行 Touch 任务。
    10>
    10>生成成功。
    10>
    10>已用时间 00:00:15.93
    ========== 全部重新生成: 成功 10 个,失败 0 个,跳过 0 个 ==========