“应用程序无法启动,因为找不到 cxcore210.dll”。为啥会发生这种情况?

Posted

技术标签:

【中文标题】“应用程序无法启动,因为找不到 cxcore210.dll”。为啥会发生这种情况?【英文标题】:"The application has failed to start because cxcore210.dll was not found". Why would this happen?“应用程序无法启动,因为找不到 cxcore210.dll”。为什么会发生这种情况? 【发布时间】:2010-06-13 18:34:08 【问题描述】:

我在新机器上运行基本的 opencv 脚本时遇到问题。我已经安装了opencv2.1。我正在从链接器链接这些文件:

C:\OpenCV2.1\lib\cv210.lib C:\OpenCV2.1\lib\cvaux210.lib C:\OpenCV2.1\lib\cxcore210.lib C:\OpenCV2.1\lib\highgui210.lib

我运行程序,它编译。但是,它给了我上述错误。这是为什么?我尝试链接到它描述的 dll,它也不喜欢那样。

【问题讨论】:

在应用程序的可执行文件所在目录下是否有cxcore210.dll 没有。但我想我可以只链接到它,而不是将 cxcore210.dll 复制并粘贴到该目录.. 那些 .lib 文件只是导入库:您链接它们,它们会包装调用 LoadLibrary()GetProcAddress() 以及其他相关的 DLL 函数,这样您就不必在你的代码。您仍然需要让 DLL 在运行时可用。 【参考方案1】:

DLL 需要位于DLL search path 中的某个位置,否则加载程序将无法找到它。

两个最简单的选择是将 DLL(s) 复制到可执行文件所在的目录或运行可执行文件的目录,或者将 DLL(s) 所在的目录添加到路径。

【讨论】:

将目录添加到 PATH 听起来很理想,但这似乎不起作用。我已将 opencv/bin 目录添加到环境变量的路径中,并且没有骰子.. @tomas:添加到路径后,您可能需要重新启动 Visual Studio,注销并重新登录,或者重新启动;我忘记了重新加载环境块时的规则是什么。【参考方案2】:

这个视频会对你有所帮助..

http://www.youtube.com/watch?v=9nPpa_WiArI

否则我想出了另一个解决方案,只需将 dll 文件直接复制到 C:\Windows\SysWOW64 文件夹(这是我的系统文件夹)。这对我有帮助,我的代码被执行了。

【讨论】:

【参考方案3】:

我遇到了同样的问题:

我正确配置了我的项目的属性,就像 100 个教程说的:但从来没有工作,所以我尝试将 dll 复制到应用程序目录并工作。我不知道为什么链接器看不到 dll

我只是复制 cv210.lib ,cvaux210.lib, cxcore210.lib ,highgui210.lib

【讨论】:

以上是关于“应用程序无法启动,因为找不到 cxcore210.dll”。为啥会发生这种情况?的主要内容,如果未能解决你的问题,请参考以下文章