最近在VC 6.0上作業(yè),有幾個(gè)地方都遇到一個(gè)十分惱人的錯(cuò)誤。就是出現(xiàn)下述的錯(cuò)誤: 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
這樣的錯(cuò)誤,明顯就是兩個(gè)被link到的library都提供了同名的函式。但直接ignore掉LIBCMTD.lib當(dāng)然是不行的,因?yàn)樗荂的library。之所以發(fā)生這個(gè)問題,是因?yàn)镸FC的library和C的library相衝突,必須設(shè)定它們被link的順序,也就是先nafxcwd.lib再LIBCMTD.lib。但是這二者都是default libraries,所以要怎麼設(shè)定它們的順序呢?我找到一個(gè)解法其實(shí)挺tricky的:
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。