鏈接錯(cuò)誤:
nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new[](unsigned int)" (??_U@YAPAXI@Z) already defined in libcpmt.lib(newaop.obj)

原因:
在libcpmt.lib聲明過(guò)的operator new在nafxcw.lib中再次定義
解決方法
Project->Property->configuration Properties->Linker->Input->Additional Dependencies
加入
nafxcw.lib
libcpmt.lib
Project->Property->configuration Properties->Linker->Input->Ignore Specific Library
加入
nafxcw.lib
libcpmt.lib
這樣鏈接程序就不會(huì)先按照默認(rèn)順序來(lái)連接這兩個(gè)庫(kù)文件
而是在最后在加入對(duì)他們的引用.這樣就避免了這個(gè)問(wèn)題
1. 顯示詳細(xì)的庫(kù)鏈接順序在Project->Property->configuration Properties->Linker->Command Line
加入編譯開(kāi)關(guān)/verbose:lib
2. 可能發(fā)生沖突的庫(kù)列表 若要使用此運(yùn)行時(shí)庫(kù) 請(qǐng)忽略這些庫(kù)
單線程 (libc.lib) libcmt.lib、msvcrt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib
多線程 (libcmt.lib) libc.lib、msvcrt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib
使用 DLL 的多線程 (msvcrt.lib) libc.lib、libcmt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib
調(diào)試單線程 (libcd.lib) libc.lib、libcmt.lib、msvcrt.lib、libcmtd.lib、msvcrtd.lib
調(diào)試多線程 (libcmtd.lib) libc.lib、libcmt.lib、msvcrt.lib、libcd.lib、msvcrtd.lib
使用 DLL 的調(diào)試多線程 (msvcrtd.lib) libc.lib、libcmt.lib、msvcrt.lib、libcd.lib、libcmtd.lib
============================
出現(xiàn)這種錯(cuò)誤大多是禁用了VS的Use Precompiled Header (/Yu)
一般設(shè)置預(yù)處理頭文件就可以解決問(wèn)題了!