VS 編譯出現,LNK2005 連線錯誤解決辦法

2021-09-12 17:24:06 字數 883 閱讀 9242

1>nafxcwd.lib(dllmodul.obj) : error lnk2005: dllmain 已經在 libcmtd.lib(dllmain.obj) 中定義

1>nafxcwd.lib(afxmem.obj) : error lnk2005: "void __cdecl operator delete(void *)" (??3@yaxpeax@z) 已經在 libcmtd.lib(dbgdel.obj) 中定義

1>     正在建立庫 d:\進行中專案\sktwater\code\x64\debug\sktwater.lib 和物件 d:\進行中專案\sktwater\code\x64\debug\sktwater.exp

1>d:\進行中專案\sktwater\code\x64\debug\sktwater.dll : fatal error lnk1169: 找到乙個或多個多重定義的符號

出現錯誤的原因是:

crt 庫對newdeletedllmain函式使用弱外部鏈結。mfc 庫也包含newdeletedllmain函式。這些函式要求先鏈結 mfc 庫,然後再鏈結 crt 庫。

解決辦法:

強制鏈結器按照正確的順序鏈結庫

專案--屬性 ---聯結器---輸入  

附加依賴項    空格nafxcwd.lib; libcmtd.lib;

忽略指定庫    空格nafxcwd.lib; libcmtd.lib;

如圖:

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 ...

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 ...

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 ...