【編程】編程語言(C++) - 編譯 - MSVCRTD.LIB LIBCMTD.LIB 的順序導致的編譯錯誤!

在編譯 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

不知道什麼原因???

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章