使用VS2013版本引用外部的lib進行編譯時候提示:多線程
錯誤 25 error LNK2038: 檢測到「_ITERATOR_DEBUG_LEVEL」的不匹配項: 值「0」不匹配值「2」(jrtplibSend.obj 中) F:\jrtplibProjects\jrtplibSend\jrtplibSend\jrtplib.lib(rtpudpv6transmitter.obj) jrtplibSend線程
產生這個問題的緣由是當前工程是Debug版本,而引用的庫文件時Release版本,只須要把當前的Debug模式改爲Release模式就能夠了,或者打開解決方案--》屬性--》連接器--》輸入--》附加依賴項中引用debug版本的lib文件名稱。debug
一樣,若是檢測到「_ITERATOR_DEBUG_LEVEL」的不匹配項: 值「2」不匹配值「0」調試
則說明是Release模式引用了Debug的庫文件。這類問題在引用文件時要注意版本的匹配blog
借用他人的狀況分析我遇到error LNK2038: 檢測到「_ITERATOR_DEBUG_LEVEL」的不匹配項: 值「0」不匹配值「2」 錯誤的第二個緣由it
release下,在庫版本匹配沒有問題。可是編譯報錯error LNK2038: 檢測到「_ITERATOR_DEBUG_LEVEL」的不匹配項: 值「0」不匹配值「2」。編譯
緣由是:我release下,工程設置中運行庫中設置成了"多線程調試 DLL (/MDd)"。這個是設置應該是在debug下的設置,release下應該設置「多線程 DLL (/MD)」。udp