700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 亡羊补牢——出现系统丢失MSVCR120d.dll MSVCP120d.dll丢失的问题

亡羊补牢——出现系统丢失MSVCR120d.dll MSVCP120d.dll丢失的问题

时间:2019-01-09 17:37:59

相关推荐

亡羊补牢——出现系统丢失MSVCR120d.dll MSVCP120d.dll丢失的问题

电脑配置环境描述:WIN10+VS+OpenCV 3.4.1 ×86Debug编译环境

问题描述

OpenCV高版本只能有×64版本的,为了实用32位编译平台自己编译了一个32位的OpenCV库,适用最高VS版本是VS,一直用的是release模式。结果今天第一次用debug模式出现了如标题所示问题,经过一番寻觅发现了出现问题的原因和解决方案。

问题产生的主要原因是vs编译了一个用vs生成的dll,是在选择第三方库时选择vc版本时出现的问题,dll文件和VS相关匹配情况如下。

vc8 = Visual Studio

vc9 = Visual Studio

vc10 = Visual Studio

vc11 = Visual Studio

vc12 = Visual Studio

MSVCP80.DLL is from Visual Studio

MSVCP90.DLL is from Visual Studio

MSVCP100.DLL is from Visual Studio

MSVCP110.DLL is from Visual Studio

MSVCP120.DLL is from Visual Studio

(MSVCR.dll的情况类似)

换句话说,就是人家OpenCV专用匹配的VS和你电脑上的VS版本不匹配。这也就解释了我心头的一个疑惑,就是如果说一个OpenCV只支持某几个VS版本,那我其他的VS版本是不是就不能用这个库了呢?答案是当然可以用,只不过需要"添油加醋一番",给你的电脑加上几个dll。

解决方案

首先要明白一个概念:64系统下,system32文件夹存放的dll是64位dll,syswow64文件夹存放的dll是32位dll。这一点很容易弄混淆。

那么第一个解决方案就是:那么假设你得到了缺失的这两个文件,(在32位编译环境中)那么就应该把它放在syswow64下,而不是system32。

第二个解决方案:既然MSVCR120.dll和MSVCD120.dll是VS的家伙,那就安装一个VS自然会自动安装。

第三个解决方案: 换一个适合自己IDE的OpenCV版本。

注:文件的下载请参考作者的资源,传送门/download/coldwindha/10635375。

附加解释

这两个文件到底代表什么意思,有什么用?

msvcr120.dll中:MS = Microsoft V = Visual C = C program language R = Run-time 120 = Version

msvcp120.dll中:MS = Microsoft V = Visual CP = C++ 120 = version

msvcr120d.dll和msvcp120d.dll是 上述文件的debug版本 。

release版本dll是vcredist_x86.exe和vcredist_x64.exe安装的(x86安装到syswow64,x64安装到system32)。

debug版本dll是vs安装的(32位dll安装到syswow64,64位dll安装到system32)。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。