最近在VC 6.0上作業(yè),有幾個地方都遇到一個十分惱人的錯誤。就是出現(xiàn)下述的錯誤: Linking... nafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) already defined in LIBCMTD.lib(new.obj) nafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in LIBCMTD.lib(dbgdel.obj) Debug/DCap.exe : fatal error LNK1169: one or more multiply defined symbols found 這樣的錯誤,明顯就是兩個被link到的library都提供了同名的函式。但直接ignore掉LIBCMTD.lib當然是不行的,因為它是C的library。之所以發(fā)生這個問題,是因為MFC的library和C的library相衝突,必須設(shè)定它們被link的順序,也就是先nafxcwd.lib再LIBCMTD.lib。但是這二者都是default libraries,所以要怎麼設(shè)定它們的順序呢?我找到一個解法其實挺tricky的: |
|
來自: firefox_zyw > 《待分類1》