应用程序无法启动,因为找不到cv210.dll“ - 在其他计算机上运行应用程序时出现问题

时间:2011-09-03 14:53:54

标签: c++ deployment opencv

我正在使用OpenCV编写小型应用程序。我的电脑上的一切都很棒。我可以编译并运行我的程序没有任何问题。但是,如果我将Debug目录复制到另一台计算机并尝试运行MyApplication.exe我得到

The application has failed to start because cv210.dll was not found" 

对我来说奇怪的是所有lib文件都在Debug目录中。这是一个文件列表 在Debug

    2010-04-06  02:05           471˙900 cv210.lib
2010-04-06  02:11           473˙226 cv210d.lib
2010-04-06  02:06           501˙562 cvaux210.lib
2010-04-06  02:12           503˙016 cvaux210d.lib
2010-04-06  02:04           411˙508 cxcore210.lib
2010-04-06  02:10           412˙836 cxcore210d.lib
2010-04-06  02:05           215˙142 cxts210.lib
2010-04-06  02:05           232˙778 highgui210.lib
2010-04-06  02:12           233˙396 highgui210d.lib
2011-04-01  06:04         1˙622˙192 libboost_filesystem-vc100-mt-1_46_1.lib
2011-09-03  16:17         1˙144˙320 MyApplication.exe
2011-09-03  16:17         4˙037˙024 MyApplication.ilk
2010-04-06  02:04           321˙358 ml210.lib
2010-04-06  02:11           322˙314 ml210d.lib
2010-04-06  02:05           181˙208 opencv_ffmpeg210.lib
2010-04-06  02:12           181˙656 opencv_ffmpeg210d.lib

如何在其他计算机上运行此程序

4 个答案:

答案 0 :(得分:1)

失败的机器没有OpenCV所需的可再发行文件。您需要提供它们,或使用静态链接。与您的断言相反,cv210.dll在您问题的文件列表中

静态链接在方便性方面是一个不错的选择。对于动态链接,最简单的选项,如果OpenCV支持,只需将所需的DLL放在与可执行文件相同的文件夹中。

但是,由于您列出的调试文件夹不包含DLL,我怀疑您是动态链接,希望将其安装到某个公共位置而不是可执行文件旁边。有关最终建议,请参阅OpenCV文档。

答案 1 :(得分:0)

您是否尝试过将cv210.dll放入该调试目录?

答案 2 :(得分:0)

.lib不是DLL。 lib就像是obj文件的集合。编译器和链接器知道你的.lib文件,但它对操作系统没用。你需要一个DLL

答案 3 :(得分:0)

答案:将\ OpenCV \ bin中的所有DLL复制到\ WINDOWS \ System32。