使用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文件名稱。
同樣,如果檢測到“_ITERATOR_DEBUG_LEVEL”的不匹配項: 值“2”不匹配值“0”
則說明是Release模式引用了Debug的庫文件。這類問題在引用文件時要注意版本的匹配
借用他人的情況分析我遇到error LNK2038: 檢測到“_ITERATOR_DEBUG_LEVEL”的不匹配項: 值“0”不匹配值“2” 錯誤的第二個原因
release下,在庫版本匹配沒有問題。但是編譯報錯error LNK2038: 檢測到“_ITERATOR_DEBUG_LEVEL”的不匹配項: 值“0”不匹配值“2”。
原因是:我release下,工程設置中運行庫中設置成了"多線程調試 DLL (/MDd)"。這個是設置應該是在debug下的設置,release下應該設置“多線程 DLL (/MD)”。