Maz*_*Man 39 c++ visual-studio-2012
每次我想编译我的Visual Studio项目时,我都会收到MSVCP120d.dll缺失的消息.谷歌无法帮助我.我已经安装了一些可再发行组件,但它们没有帮助.我也发现了这个:
Msvcp120d.dll C++运行时的调试版本.不允许再分配.
http://msdn.microsoft.com/en-us/library/windows/hardware/dn448963(v=vs.85).aspx
dre*_*rjm 56
从评论中,问题是由在Visual Studio 2012编译的项目中使用Visual Studio 2013构建的dll引起的.原因是第三方库名为包含dll vc11,vc12的文件夹.必须小心使用任何使用编译器版本(少于4位数)的系统,因为这与Visual Studio的版本不匹配(Visual Studio 2010除外).
Microsoft C++运行时dll还使用基于编译器版本而不是Visual Studio版本的2位或3位数代码.
小智 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.
快速修复的附录:为了减少猜测,您可以使用依赖性walker.使用依赖性walker打开您的应用程序,您将看到需要哪些DLL文件.
例如,我最近的应用程序是在Visual Studio 2015(Windows 10 64位计算机)中构建的,我将其定位到32位Windows XP计算机.使用依赖性walker,我的应用程序(见截图)需要以下文件:
除了我构建的opencv*文件之外,我还需要从C:\ Windows\SysWow64(System32 for 32-bit)复制系统文件.
别客气.:-)