1.錯誤提示與緣由分析
或者是提示:error LNK2038: 檢測到「_ITERATOR_DEBUG_LEVEL」的不匹配項: 值「0」不匹配值「2。html
此類問題出現的根本緣由就是,你引用的lib庫的debug或release版本,與本工程的dubug或release版本不符合。這類問題在引用文件時要注意版本的匹配。多線程
2.解決
此問題,應該分不一樣的狀況去解決。post
2.1 設置運行庫
是幾個工程的 運行庫設置不同?spa
此時的解決方法:線程
項目屬性 -> 配置屬性 -> C/C++ -> 代碼生成 -> 運行庫debug
都設置同樣就好了 多線程調試(/MD)調試
release下,在庫版本匹配沒有問題。可是編譯報錯error LNK2038: 檢測到「_ITERATOR_DEBUG_LEVEL」的不匹配項: 值「0」不匹配值「2」。htm
緣由是:我release下,工程設置中運行庫中設置成了"多線程調試 DLL (/MDd)"。這個是設置應該是在debug下的設置,release下應該設置「多線程 DLL (/MD)」。blog
2.2 更改連接器輸入的lib的debug版本爲release版本
一樣,會有以下提示,檢測到「_ITERATOR_DEBUG_LEVEL」的不匹配項: 值「2」不匹配值「0」get
以上提示的現象是當前工程是Release版本,而引用的庫文件時Debug版本,只須要把當前的Release模式改爲Debug模式就能夠了。
打開解決方案--》屬性--》連接器--》輸入--》附加依賴項中引用Release版本的lib文件名稱。
示例以下:
參考文章
error LNK2038: 檢測到「RuntimeLibrary」的不匹配項: 值「MDd_DynamicDebug」不匹配值「MTd_StaticDebug」