LNK2005 鏈接錯誤解決辦法
nafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) 已經在 LIBCMTD.lib(new.obj) 中定義
nafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) 已經在 LIBCMTD.lib(dbgdel.obj) 中定義
nafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new[](unsigned int)" (??_U@YAPAXI@Z) 已經在 LIBCMTD.lib(new2.obj) 中定義
nafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete[](void *)" (??_V@YAXPAX@Z) 已經在 LIBCMTD.lib(delete2.obj) 中定義函數
緣由:
CRT 庫對 new、delete 和 DllMain 函數使用弱外部連接。MFC 庫也包含 new、delete 和 DllMain 函數。這些函數要求先連接 MFC 庫,而後再連接 CRT 庫。命令行
解決辦法:
一種方法是強制連接器按照正確的順序連接庫。第二種方法是由您親自查找致使問題的模塊並糾正它。
一、項目--屬性 ---鏈接器---輸入
附加依賴項 Nafxcwd.lib Libcmtd.lib
忽略指定庫 Nafxcwd.lib Libcmtd.lib方法
二、項目--屬性 ---鏈接器---命令行 輸入: /FORCE:MULTIPLEerror