1. 程式人生 > >msvcp110d.dll 丟失問題原因及解決思路

msvcp110d.dll 丟失問題原因及解決思路

轉自https://blog.csdn.net/doubaijun/article/details/50599914 https://www.cnblogs.com/lisuyun/p/6410393.html

一般用vs生成的程式在安裝了vs執行包的電腦上也會報出來這個錯誤,很多人不理解為什麼我安裝了執行環境還報錯呢。主要原因是你的應用程式是在debug環境下生成的,這時候應用程式的支援庫是debug版本,而微軟給釋出的執行環境是releas版的。msvcp110d.dl 這個庫就是debug版本的庫檔案,如果用release版釋出需要的庫就是msvcp110.dl 這個庫,這個庫是在vs的執行環境中,但是msvcp110d.dl 這個庫是不在執行環境中。庫檔名字後邊帶d的都是除錯版本庫。因此你把程式中所有用到的庫都改成release版本就不會再報出錯誤了。

 

錯誤 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)”。