platform: Microsoft Visual Studio2008 VC++
在寫程式的過程中,
突然遇到了這個問 :
error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) 已在 LIBCMTD.lib(new.obj) 中定義過了
error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) 已在 LIBCMTD.lib(dbgdel.obj) 中定義過了
error LNK2005: "void * __cdecl operator new[](unsigned int)" (??_U@YAPAXI@Z) 已在 LIBCMTD.lib(new2.obj) 中定義過了
error LNK2005: "void __cdecl operator delete[](void *)" (??_V@YAXPAX@Z) 已在 LIBCMTD.lib(delete2.obj) 中定義過了
error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) 已在 LIBCMTD.lib(dbgdel.obj) 中定義過了
error LNK2005: "void * __cdecl operator new[](unsigned int)" (??_U@YAPAXI@Z) 已在 LIBCMTD.lib(new2.obj) 中定義過了
error LNK2005: "void __cdecl operator delete[](void *)" (??_V@YAXPAX@Z) 已在 LIBCMTD.lib(delete2.obj) 中定義過了
找了二天找不到解答,
有人說調整 header 的順序,
在上一百多個檔案裡,要找那個檔案來調呀?
調過了還會造成新的問題 !
網路上爬了不下百個文章,
還是無一統一的解法,
最後自己亂試:
只要把 uafxcwd.lib 放到:
連結器/輸入/其他相依性 (Linker/Input/Other Dependency)
這個煩人的問題就解決了。