每次我想编译我的Visual Studio项目时,都会收到MSVCP120d.dll缺失的消息。谷歌无法帮助我。我已经安装了一些可再发行组件,但它们没有帮助。我也发现了这个:
Msvcp120d.dll C ++运行时的调试版本。没有再分配 允许的。
http://msdn.microsoft.com/en-us/library/windows/hardware/dn448963(v=vs.85).aspx
答案 0 :(得分:54)
从评论,这个问题是通过使用在了与Visual Studio 2012的原因编译一个项目建成使用Visual Studio 2013是一个叫做包含的dll VC11,VC12文件夹第三方库dll文件引起的。必须小心使用任何使用编译器版本(少于4位数)的系统,因为这与Visual Studio的版本不匹配(Visual Studio 2010除外)。
Microsoft C ++运行时dll也使用基于编译器版本而不是Visual Studio版本的2位或3位数代码。
Visual Studio 2015,2017和2019之间存在二进制兼容性。
答案 1 :(得分:41)
我发现自己浪费时间寻找解决方案,我怀疑将来再做一次。所以这是给自己和其他可能觉得有用的人的说明。
如果缺少MSVCP120.DLL,则表示您尚未安装Visual Studio 2013(x86和x64)的Visual C ++ Redistributable Packages。安装,重启,你应该在c:\ Windows \ System32。
中找到这个文件现在,如果缺少MSVCP120D.DLL,这意味着您尝试运行的应用程序是在调试模式下构建的。正如OP所提到的,运行时的调试版本是不可分发的。
那我们该怎么做?
嗯,我知道有一个选项:转到Project的Debug配置> C / C ++>代码生成>运行时库并选择多线程调试(/ MTd)。这将静态链接MSVCP120D.dll到您的可执行文件。
如果您只想快速获取内容,还可以快速修复:从sys32(我的是C:\ Windows \ System32)文件夹中复制MSVCP120D.DLL。您可能还需要MSVCR120D.DLL。
快速解决方案的附录:为了减少猜测,您可以使用dependency walker。使用依赖性walker打开您的应用程序,您将看到需要哪些DLL文件。
例如,我最近的应用程序是在Visual Studio 2015(Windows 10 64位计算机)中构建的,我将其定位到32位Windows XP计算机。使用依赖性walker,我的应用程序(see screenshot)需要以下文件:
除了我构建的opencv *文件之外,我还需要从C:\ Windows \ SysWow64(System32 for 32-bit)复制系统文件。
欢迎你。 : - )
答案 2 :(得分:2)
我的问题是将x64编译部署到远程测试机器上。我在
中找到了msvp120d.dll和msvcr120d.dll的x64版本C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist\Debug_NonRedist\x64\Microsoft.VC120.DebugCRT
答案 3 :(得分:2)
当我在VS 2015上实现OpenCV 2.4.11时,我遇到了同样的问题。 我试图通过三种方法逐一解决这个问题但它们不起作用:
最后我通过重新安装VS2015并选择了所有可安装的选项解决了这个问题,它占用了很多空间,但确实有效。
答案 4 :(得分:2)
我为32位版本下载了msvcr120d.dll
和msvcp120d.dll
,然后将它们放入我项目的Debug
文件夹中。它运作良好。 (我的电脑是64位版本)
答案 5 :(得分:1)
我在Visual Studio Pro 2017中有相同的问题:在发布模式下缺少MSVCP120.dll文件,在调试模式下缺少MSVCP120d.dll文件。 我按照此处Visual C++ Redistributable Packages for Visual Studio 2013的建议安装了Update for Visual C++ 2013 and Visual C++ Redistributable Package和Microsoft answer,从而解决了发行模式。 对于调试模式,最终的工作是将另一台计算机(使用Visual Studio 2013)中的msvcp120d.dll和msvcr120d.dll复制到C:\ Windows \ System32
答案 6 :(得分:0)
替代方法:不安装可再发行软件包。
在某些github中查看相关的dll,一些人上传参考dll以了解其应用程序依赖性。
您可以在您的项目中下载和使用它们,我已经成功使用和运行了它们。
答案 7 :(得分:0)
当这个问题出现时,我正在 VS 2019 上构建我的应用程序。您可以将这些 DLL 从 this 位置复制到应用程序的调试目录中。