“無法啟動此程序因為計算機中丟失 XXX.dll” 這類問題在 visual studio 中很常見…
許久不和VS打交道,一碰各種坑…
這是在 VS 2015 Community 出現的問題:
(1)編譯時出現的錯誤: error LNK1104: 無法打開文件“msvcprtd.lib”
(2)編譯時出現的錯誤:“cv::BackgroundSubtractorMOG::noiseSigma”: 無法訪問 protected 成員
opencv 版本和 VS 沖突?
(3)運行時出現的錯誤:無法啟動此程序,因為計算機中丟失 MSVCP100D.dll
百度了很多方法,說什么“在項目里面找屬性:Property->C/C++->Code Generation->Runtime Library把多線程調試DLL(/MDd)改為多線程調試 (/MTd)”——並不管用。這會生成新的錯誤…
下法可行:
1)復制文件“msvcr100d.dll” 到系統目錄下。
(“msvcr100d.dll”可到網上下載 http://download.pchome.net/dll/m/download-184545.html)
2)系統目錄一般為:C:\WINNT\System32 64位系統為C:\Windows\SysWOW64。
3)最后點擊開始菜單-->運行-->輸入regsvr32 msvcr100d.dll,回車即可解決錯誤提示。
盡管第三步會提示“regsvr32 不是內部或外部命令,也不是可運行的程序或批處理文件。” 但再次運行此錯誤就解決了。
(4)運行時出現的錯誤:無法啟動此程序,因為計算機中丟失 tbb_debug.dll
OpenCV中文網站論壇中提到的方法:
方法一:下載tbb3.0,解壓后,在其..\bin\ia32\vc9中找到tbb_debug.dll 將其拷貝到 OpenCV的存放目錄中的..\OpenCV2.3.1\build\common\tbb\ia32\vc10(注:OpenCV2.3.1是解壓目錄,可能取名不同,默認是opencv)
重新編譯程序,試試效果,如果不能解決,那可能是環境變量遺漏配置了,請檢查環境變量(計算機-->屬性-->高級系統設置-->系統屬性窗口(切換到高級選項卡)-->環境變量)中是否配置了對應的..\OpenCV2.3.1\build\common\tbb\ia32\vc10
方法一的替代方案:如果不想下載,可以到OpenCV存目錄中的..\OpenCV2.3.1\build\common\tbb\ia32\vc10找到tbb.dll,復制黏貼,然后重命名為tbb_debug.dll(此法較為便捷)
方法二:在方法一及替代方法解決不了的情況下,可以將tbb_debug.dll(文件來源的方法一或其替代方案)拷貝到..\OpenCV2.3.1\build\x86\vc10\bin目錄下。
很關鍵的一點是要重啟 VS !
【Reference】
http://www.opencv.org.cn/forum.php?p=52223
http://blog.csdn.net/wangqiulin123456/article/details/8264151