nafxcwd.lib(afxmem.obj) error lnk2005

最近寫程序突然遇到個錯誤:nafxcwd.lib(afxmem.obj) error lnk2005

查了下msdn發現主要原因是同時使用了CRT中的new, delete和MFC中的new, delete重載導致的,參考:http://support.microsoft.com/kb/148652/en-us

總結下我這邊發生的情況:

工程中包含了靜態鏈接庫,而這個鏈接庫只使用了CRT,並且在一些實現文件中重定義了new

#ifdef _DEBUG
#define new new( _CLIENT_BLOCK, __FILE__, __LINE__ )
#endif

然而,客戶端確實一個MFC程序,所以在連接時發生lnk2005衝突,所以這種情況的簡單解決方案就是刪掉對new 的重定義宏
發佈了48 篇原創文章 · 獲贊 13 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章