⽆法启动此程序因为计算机中丢失xxx.dll
“⽆法启动此程序因为计算机中丢失 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” 到系统⽬录下。
尽管第三步会提⽰“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】