MSVCP120d.dll丢失
每次我想编译我的Visual Studio项目,我得到MSVCP120d.dll丢失的消息。 谷歌不能帮助我。 我已经安装了一些可再分发的软件,但他们没有帮助。 我也发现这个:
Msvcp120d.dll C ++运行时的debugging版本。 不允许重新分配。
http://msdn.microsoft.com/en-us/library/windows/hardware/dn448963(v=vs.85).aspx
从评论中,问题是由Visual Studio 2013中使用Visual Studio 2013编译的项目中生成的dll导致的。其原因是第三方库命名为包含dll vc11,vc12的文件夹。 对于任何使用编译器版本(小于4位)的系统,必须小心,因为这与Visual Studio的版本(Visual Studio 2010除外)不匹配。
- vc8 = Visual Studio 2005
- vc9 = Visual Studio 2008
- vc10 = Visual Studio 2010
- vc11 = Visual Studio 2012
- vc12 = Visual Studio 2013
- vc14 = Visual Studio 2015
Microsoft C ++运行时dll使用也是基于编译器版本而不是Visual Studio版本的2或3位代码。
- MSVCP80.DLL来自Visual Studio 2005
- MSVCP90.DLL来自Visual Studio 2008
- MSVCP100.DLL来自Visual Studio 2010
- MSVCP110.DLL来自Visual Studio 2012
- MSVCP120.DLL来自Visual Studio 2013
- MSVCP140.DLL来自Visual Studio 2015
我发现自己在这方面浪费时间寻找解决办法,我怀疑将来再做一次。 所以这里给我自己和其他可能会觉得有用的人的提示。
如果MSVCP120.DLL丢失,这意味着您尚未安装Visual Studio 2013(x86和x64)的Visual C ++可再发行组件包。 安装,重新启动,你应该在c:\ Windows \ System32中find这个文件。
现在,如果MSVCP120D.DLL丢失,这意味着您正在尝试运行的应用程序是以debugging模式构build的。 正如OP所提到的,运行时的debugging版本是不可分发的。
那么我们该怎么办?
那么,我知道一个选项:转到您的项目的debuggingconfiguration> C / C ++>代码生成>运行时库,然后selectmultithreadingdebugging(/ MTd)。 这将静态链接到您的可执行文件MSVCP120D.dll。
如果您只是想快速find某些东西,还有一个快速修复:从sys32(我的是C:\ Windows \ System32)文件夹中复制MSVCP120D.DLL。 您可能还需要MSVCR120D.DLL。
快速修复的附录:为了减less猜测,您可以使用依赖关系的步行者 。 用依赖walker打开你的应用程序,你会看到需要什么dll文件。
例如,我最近的应用程序是在Visual Studio 2015(Windows 10 64位计算机)中构build的,我将其定位到32位Windows XP计算机。 使用依赖walker,我的应用程序(见截图)需要以下文件:
- opencv _ *。dll < – 我自己的dll文件(也可能有依赖关系)
- msvcp140d.dll < – SysWOW64 \ msvcp140d.dll
- kernel32.dll < – SysWOW64 \ kernel32.dll
- vcruntime140d.dll < – SysWOW64 \ vcruntime140d.dll
- ucrtbased.dll < – SysWOW64 \ ucrtbased.dll
除了我已经构build的opencv *文件,我还需要从C:\ Windows \ SysWow64(System32 for 32-bit)复制系统文件。
别客气。 🙂
当我在VS 2015上实现OpenCV 2.4.11时,我遇到了同样的问题。我试图通过三种方法逐一解决这个问题, 但是它们不起作用 :
- 在线下载MSVCP120.DLL并将其添加到Windowspath和OpenCV bin文件path
- 为Visual Studio 2013 x86和x86安装Visual C ++可再发行组件包
- 调整debugging模式。 转至configuration> C / C ++>代码生成>运行时库并selectmultithreadingdebugging(/ MTd)
最后,我通过重新安装VS2015来解决这个问题, 并select了可以安装的所有选项 ,这需要很大的空间,但它确实有效。
我为32位版本下载了msvcr120d.dll
和msvcp120d.dll
,然后将它们放到我的项目的Debug
文件夹中。 它运作良好。 (我的电脑是64位版本)
我的问题是将x64编译部署到远程testing机器上。 我find了msvp120d.dll和msvcr120d.dll的x64版本
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist\Debug_NonRedist\x64\Microsoft.VC120.DebugCRT
如果你实际上没有利用Debug库,而只是试图编译默认的VS“Debug”configuration,那么你可以简单地改变为“Release”configuration。