error LNK2038: 檢測到「RuntimeLibrary」的不匹配項: 值「MDd_DynamicDebug」不匹配值「MD_DynamicRelease」

 

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」

相關文章
相關標籤/搜索