error LNK2038: 檢測到“_ITERATOR_DEBUG_LEVEL”的不匹配項: 值“0”不匹配值“2

error LNK2038: 檢測到“_ITERATOR_DEBUG_LEVEL”的不匹配項: 值“0”不匹配值“2

使用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)”。

轉自:https://www.cnblogs.com/lisuyun/p/6410393.html

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