VS2012运行opencv程序时缺少MSVCP120D.dll

首先声明,看清题目,是VS2012(或更低版本),缺少的是MSVCP120D.dll,至于原因,后面说。当然,其余的VS和缺少其余的dll也可以参考


1. 问题原因

这个很重要,很多网上的解决方案都是找个vcredist_x86之类的C++运行库安装一下,有的还直接下载MSVCP120D.dll,将其拖入系统文件夹再进行regsvr32命令操作之类的.....这些方案至少对于我的问题是没任何用处的。

我是运行的opencv程序,所以项目需要添加opencv的lib,之前认识不足,我直接用的opencv3.0中x86的VC12。opencv3.0的x86下有个VC12和VC11,而opencv3.1的x86下有个VC12和VC14。这个很重要,因为VC中的库对应的其实是不同版本的Visual Studio。

VC8 = Visual Studio 2005

VC9 = Visual Studio 2008

VC10 = Visual Studio 2010

VC11 = Visual Studio 2012

VC12 = Visual Studio 2013

......

看到这,原因差不多明了了,我用的是VS2012,但Library中包含的却是VC12,所以出现了错误,至于为什么错误是缺少MSVCP120D.dll呢?

其实MSVCP120D.dll是VS2013编译时产生的dll,所以用VS2012自然就无法生成MSVCP120D.dll。同样,不同版本的VS产生的dll也不一样:

MSVCP80.DLL is from Visual Studio 2005

MSVCP90.DLL is from Visual Studio 2008

MSVCP100.DLL is from Visual Studio 2010

MSVCP110.DLL is from Visual Studio 2012

MSVCP120.DLL is from Visual Studio 2013 

.......


2. 解决方法

知道了原因,解决方法就很简单了,把包含的库路径和环境变量改成VC11在clean重新编译就好了。经我尝试,需要重启VS。


3. 总结

主要是刚接触opencv,对下面的库不熟悉,所以导致错误。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值