这个问题的实际解决方案是将opencv bin目录的路径附加到系统PATH
环境变量中。
查看此答案,描述在 Visual Studio 2010 中安装 OpenCV 的完整过程。
这种方法有一个缺点。预构建的 OpenCV x86 和 x64 二进制文件具有相同的名称。因此,通过将 OpenCV 的路径附加到PATH
变量中,您可以一次执行 32 位版本或 64 位版本。要运行其他版本,您必须更改PATH
变量。
对此的替代方案(我个人最喜欢的)还涉及将 dll 复制到输出目录,但这是在编译结束时自动完成的。我所做的是为 x86 和 x64 dll 路径创建新的环境变量。我创建用户变量CV_BIN32
并CV_BIN64
分别包含 x86 和 x64 dll 的路径。
创建用户变量后,打开您的 OpenCV 项目,转到Project Properties
-> Build Events
-> Post-Build Event
-> Command Line
。
在运行时为您需要的 dll 添加复制命令。
这个是针对 Win32 Release 配置的:
copy "$(CV_BIN32)\opencv_core243.dll" "$(OutDir)"
copy "$(CV_BIN32)\opencv_highgui243.dll" "$(OutDir)"
您可以为所有 4 种配置更改它们,(调试/发布),(Win32/x64)
现在当项目构建过程完成时,指定的dll会自动复制到输出目录,并且不会显示错误。