在編譯 JXTA-C 的時候發現一個有趣的現象,就是老是出現 LNK2005 錯誤
Linking...
MSVCRTD.LIB(MSVCRTD.dll) : error LNK2005: __errno already defined in LIBCMTD.LIB(dosmap.obj)
MSVCRTD.LIB(MSVCRTD.dll) : error LNK2005: _free already defined in LIBCMTD.LIB(dbgheap.obj)
MSVCRTD.LIB(MSVCRTD.dll) : error LNK2005: _realloc already defined in LIBCMTD.LIB(dbgheap.obj)
MSVCRTD.LIB(MSVCRTD.dll) : error LNK2005: _malloc already defined in LIBCMTD.LIB(dbgheap.obj)
MSVCRTD.LIB(MSVCRTD.dll) : error LNK2005: _memmove already defined in LIBCMTD.LIB(memmove.obj)
但是仔細查看了所用的鏈接庫又都沒有問題,沒辦法,只好一個庫一個庫的找,後來發現原來是MSVCRTD.LIB LIBCMTD.LIB 這兩個庫的先後順序導致的問題,正確的順序應該是
MSVCRTD.LIB LIBCMTD.LIB 而不是 LIBCMTD.LIB MSVCRTD.LIB
不知道什麼原因???