Visual Studios 2010程序无法启动因为缺少opencv_core243.dll

时间:2013-01-20 20:47:29

标签: visual-studio-2010 opencv dll

我正在学习如何使用OpenCV,并且在实践中我运行了一个程序(在发布模式下,x64)。我有0个编译器错误,但有一个弹出屏幕说:

  

“程序无法启动,因为缺少opencv_core243.dll”

但是,我确保我声明了正确的环境变量并指定了必要的库/目录。当我将以下.dll文件复制到x64 / Release:

时,我的问题得到解决
  • opencv_core243.dll
  • opencv_highgui243.dll
  • opencv_imgproc243.dll

我的程序现在编译好并且有效。但是,我想知道为什么。复制和粘贴这些.dll文件感觉很便宜。我是否错过了自动生成这些.dll文件的步骤?

1 个答案:

答案 0 :(得分:4)

此问题的实际解决方案是将opencv bin目录的路径附加到System PATH环境变量。

查看this answer,了解在Visual Studio 2010中安装OpenCV的完整过程。

这种方法有一个缺点。预构建的OpenCV x86和x64二进制文件具有相同的名称。因此,通过将OpenCV的路径附加到PATH变量,您可以一次执行32位版本或64位版本。要运行其他版本,您必须更改PATH变量。

另一种选择(我个人最喜欢的)还涉及将dll复制到输出目录,但这是在编译结束时自动完成的。我所做的是为x86和x64 dll路径创建新的环境变量。我创建了分别包含x86和x64 dll路径的用户变量CV_BIN32CV_BIN64

创建用户变量后,打开OpenCV项目,转到Project Properties - > Build Events - > Post-Build Event - > Command Line

为运行时所需的dll添加复制命令。

这个适用于Win32发布配置:

copy "$(CV_BIN32)\opencv_core243.dll" "$(OutDir)"
copy "$(CV_BIN32)\opencv_highgui243.dll" "$(OutDir)"

您可以为所有4种配置更改它们,(调试/发布),(Win32 / x64)

现在,当项目构建过程完成时,指定的dll将自动复制到输出目录,并且不会显示错误。