如何修复 Visual Studio 2015 中的错误 MSVCP120D.dll?

Posted

技术标签:

【中文标题】如何修复 Visual Studio 2015 中的错误 MSVCP120D.dll?【英文标题】:How to fix error MSVCP120D.dll in Visual Studio 2015? 【发布时间】:2016-01-31 07:07:58 【问题描述】:

您好,我已经在我的电脑上下载并解压了 OpenCV-2.4.10.exe。然后在VS 2015中新建一个Win32 Console应用项目,在Project属性中设置所有Paths,在Win8.1中设置环境变量。当我尝试在调试模式下启动程序时,我得到 “程序无法启动,因为您的计算机中缺少 MSVCP120D.dll。请尝试重新安装程序以解决此问题”。

然后,我下载了 Visual C++ Redistributable for Visual Studio 2015 但问题仍然存在。在 VS 2015 中使用 OpenCV 应该怎么做?

【问题讨论】:

然后,我下载了 Visual C++ Redistributable for Visual Studio 2015 -- 下载后,你对这些文件做了什么?此外,MSVCP120D.DLL不是发布 DLL。它是一个调试运行时 DLL,是 Visual Studio 编译器工具的一部分。它不是可再发行文件的一部分。任何名称中以D 结尾的 Visual Studio DLL 都是调试 DLL 可能重复:***.com/questions/21707992/msvcp120d-dll-missing vc120 是 Visual Studio 2013 C++ 编译器。下载opencv源代码,用visual studio 2015(vc140)编译。您可以安装 Visual Studio 2013 Redistributable,但您不应该使用不兼容的库进行编译! 或者您可以使用 OpenCV 3.1,它为 VS2015 预构建了二进制文件。 【参考方案1】:

OpenCV-2.4.10.exe 附带运行时二进制 dll,可与 vc10 (vs2010)、vc11 (vs2012) 和 vc12(vs2013)。

这些 DLL 文件分别使用 MSVCP100.dll、MSVCP110.dll 和 MSVCP120.dll,如果您安装了 Visual Studio 2015,您应该在 System32(或 SysWOW64)目录中找到它们。

当您的应用程序尝试加载 DEBUG 版本的 DLL 二进制文件时,会出现 MSVCP120D.dll 错误。除非您的系统上安装了 Visual Studio 2013,否则您没有 MSVCP120D.dll。要解决此问题,请使用 Release 运行时而不是 Debug 运行时。

您需要做的就是从您的项目中排除 DEBUG 库文件。这意味着只包括没有后缀“d”的 lib 文件。 (即包括 opencv_core2410.lib 而不是 opencv_core2410d.lib)

HTH

附加: 你真的不需要加载调试二进制文件,除非你需要调试 openCV 的源代码。如果你这样做了,还是有办法的。下载openCV源码,使用CMake创建VS2015工程。然后,您可以使用 VS2015 的最新运行时构建自己的 dll 二进制文件。

【讨论】:

【参考方案2】:

VS2015 使用 vc14,而 OpenCV2.4.10 不附带与 vc14 关联的预构建二进制文件。 This answer 应该可以帮助你理解。因此,您应该在项目属性中为 Linker>General>Additional Library Directories 选择正确的文件夹 (vc14)。

您可以使用 cmake 使用 VS2015 构建二进制文件,也可以下载更高版本的 OpenCV,该版本已为 vc14 预构建二进制文件。

【讨论】:

以上是关于如何修复 Visual Studio 2015 中的错误 MSVCP120D.dll?的主要内容,如果未能解决你的问题,请参考以下文章

如何修复 Visual Studio 2015 中的错误 MSVCP120D.dll?

如何在 Visual Studio 2015 中启用 WiX 项目

无法卸载或修复Microsoft Visual Studio 2015社区

Visual Studio 2015和2017 - 仅使用一个快捷方式应用重命名

如何通过按“空格”取消Visual Studio 2015中的自动完成?

如何将visual studio卸载干净