LIBCMTD.lib与libcpmtd冲突的解决方法。
error:
1>uafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) 已經在 LIBCMTD.lib(new.obj) 中定義
1>uafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) 已經在 LIBCMTD.lib(dbgdel.obj) 中定義
1>uafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new[](unsigned int)" (??_U@YAPAXI@Z) 已經在 libcpmtd.lib(newaop.obj) 中定義
1>uafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete[](void *)" (??_V@YAXPAX@Z) 已經在 LIBCMTD.lib(delete2.obj) 中定義
1>..\Bin\Https_client2ucs.exe : fatal error LNK1169: 找到一個或多個多重定義的符號
解決方法:
編譯工具:VS2008
項目--〉屬性--〉配置屬性--〉鏈接器--〉輸入--〉附加依賴項--〉Nafxcwd.lib Libcmtd.lib
項目--〉屬性--〉配置屬性--〉鏈接器--〉輸入--〉忽略特定庫--〉Nafxcwd.lib;Libcmtd.lib
若有如下警告:
LINK : warning LNK4098: 默認庫“uafxcwd.lib”與其他庫的使用沖突;請使用 /NODEFAULTLIB:library
請注意忽略特定庫中二個庫之間是否少了分號,如:Nafxcwd.lib;Libcmtd.lib,然后重新生成就沒有這個警告了。若是Nafxcwd.lib Libcmtd.lib,就會報這個錯誤。
截圖如下:
?
PS:以上錯誤原因是由于這二個庫有各自的new和delete,這是沖突的,需要指定順序。正確加載庫的順序是Nafxcwd.lib Libcmtd.lib,而默認的是Libcmtd.lib? Nafxcwd.lib。
所以就會報出上面的那個error。
轉載于:https://www.cnblogs.com/lgh1992314/p/5834915.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的LIBCMTD.lib与libcpmtd冲突的解决方法。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 暑假集训中期测试 Problem D:
- 下一篇: 操作系统(二): 进程与线程