2

我有以下情况:

我正在尝试在 Windows 8 中使用 Visual Studio 2012、opencv 2.4.1。然后当我尝试运行我的应用程序时,我收到以下消息错误:

在此处输入图像描述

我知道以前在 stackoverflow 中询问过有关丢失 MSVCP100D.dll 的问题,但发生了一些不同的事情:当我在计算机中查找 dll 时,我注意到我有一个 MSVCP110D.dll,这可能是第一个的更高版本。

有人可以回答这里发生了什么。

4

1 回答 1

7

您没有安装 Visual C++ 2010 运行时。Visual Studio 2012 安装的是 11.0 版本,但您的 OpenCV 似乎已使用 Visual Studio 2010 编译,因此需要 2010 运行时 (10.0)。你应该可以从这里得到它:http: //www.microsoft.com/en-us/download/details.aspx?id=14632

因为它正在寻找D版本,所以您可以看到它是在 Debug 中构建的。从法律上讲,运行时库不能在调试中重新分发,因此您有以下选项:

  • 安装 Visual Studio 2010(至少 VC++),这样您就拥有所需的文件。
  • 在发布模式下编译 OpenCV(因此它不需要运行时的调试版本)。然后,您只需要安装 vcredist100 可再发行组件。

在部署应用程序的任何情况下,您都需要包含两个版本的 VC++ redists:应用程序版本 11 和 OpenCv 版本 10(这是强制性的)。

请注意,您可能无法在 Visual Studio 2010 和 12 之间链接二进制文件。

于 2012-10-26T14:51:43.260 回答