无法启动此程序因为计算机中丢失 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” 到系统目录下。

            (“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

posted on 2017-11-12 21:30  CuriousZero  阅读(5765)  评论(0编辑  收藏  举报

导航