個人工程中三個項目,編譯其中的lib工程時是成功的,可是編譯依賴於lib工程的第二個工程老出錯,debug
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "..........code
LIBCMTD.lib(setlocal.obj) : error LNK2005: __configthreadlocale 已經在 MSVCRTD.lib(MSVCR80D.dll) 中定義it
1>LIBCMTD.lib(dbgheap.obj) : error LNK2005: _malloc 已經在 MSVCRTD.lib(MSVCR80D.dll) 中定義編譯
1>LIBCMTD.lib(dbgheap.obj) : error LNK2005: _realloc 已經在 MSVCRTD.lib(MSVCR80D.dll) 中定義table
1>LIBCMTD.lib(dbgheap.obj) : error LNK2005: _free 已經在 MSVCRTD.lib(MSVCR80D.dll) 中定義thread
1>LIBCMTD.lib(dbgheap.obj) : error LNK2005: __CrtSetCheckCount 已經在 MSVCRTD.lib(MSVCR80D.dll) 中定義bug
1>LIBCMTD.lib(tidtable.obj) : error LNK2005: __encode_pointer 已經在 MSVCRTD.lib(MSVCR80D.dll) 中定義im
1>LIBCMTD.lib(tidtable.obj) : error LNK2005: __decode_pointer 已經在 MSVCRTD.lib(MSVCR80D.dll) 中定義error
1>LIBCMTD.lib(dbghook.obj) : error LNK2005: __crt_debugger_hook 已經在 MSVCRTD.lib(MSVCR80D.dll) 中定義項目
1>LIBCMTD.lib(crt0dat.obj) : error LNK2005: _exit 已經在 MSVCRTD.lib(MSVCR80D.dll) 中定義
1>LIBCMTD.lib(crt0dat.obj) : error LNK2005: __exit 已經在 MSVCRTD.lib(MSVCR80D.dll) 中定義
找了半天緣由,發現工程的運行時庫不一致。調整了以後就不報這個錯誤了。
把運行時庫調整一致就OK了。