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



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

"程序无法启动,因为opencv_core243.dll缺失"

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

  • opencv_core243.dll
  • opencv_highgui243.dll
  • opencv_imgproc243.dll

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

实际的解决方法是将opencv bin目录的路径附加到System PATH环境变量

看一下这个答案,它描述了在Visual Studio 2010中安装OpenCV的完整过程。

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

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

创建用户变量后,打开您的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将自动复制到输出目录,并且不会显示错误。

相关内容

  • 没有找到相关文章

最新更新