1>uafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) 已經在 LIBCMT.lib(new.obj) 中定義
1>uafxcw.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) 已經在 LIBCMT.lib(delete.obj) 中定義
1>uafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new[](unsigned int)" (??_U@YAPAXI@Z) 已經在 LIBCMT.lib(new2.obj) 中定義
1>../bin/TLLogger_Unicode_Release.exe : fatal error LNK1169: 找到一個或多個多重定義的符號
解決方法:
http://blog.vckbase.com/zaboli/archive/2010/02/05/40921.aspx
原因:
CRT 庫對 new、delete 和 DllMain 函數使用弱外部鏈接。MFC 庫也包含 new、delete 和 DllMain 函數。這些函數要求先鏈接 MFC 庫,然後再鏈接 CRT 庫。
當 C 運行時 (CRT) 庫和 Microsoft 基礎類 (MFC) 庫的鏈接順序有誤時,可能會出現以下 LNK2005 錯誤。
解決方法:
強制鏈接器按照正確的順序鏈接庫!
project->properties->Linker->Ignore Specific Library 添加 uafxcwd.lib Libcmtd.lib (輸入- 忽略特定庫)
在Additional Dependencied添加uafxcwd.lib Libcmtd.lib (輸入- 附加選項 )