【发布时间】:2012-11-22 18:59:17
【问题描述】:
我正在研究 GPU 上的计算机视觉问题,我正在尝试使用 openCV 来解决。我使用 Cmake 完成安装,然后使用 Visual Studio 2008 构建项目。然后我在 Visual Studio 2008 中编写了一个小程序来测试 openCV 安装,然后构建项目。该项目构建得非常好,但是当我尝试运行程序(ctrl+F5)时,屏幕上会出现一条消息,提示
“程序无法启动,因为您的计算机中缺少 cudart32_42_9.dll。请尝试重新安装程序以解决问题。”
这个错误是关于什么的?如何正确运行带有 cuda 程序的 openCV 而不会出现任何错误?我有一个项目的最后期限,我无法在最后 4 天内完成这项工作。这太令人沮丧了。现在一切都已正确安装,但最终这件事让我发疯了。如果有人能帮助我解决这个问题并指导我正确运行带有 cuda 的 openCV,我将非常高兴和感激。感谢您的所有帮助。
【问题讨论】:
-
您运行的是 32 位还是 64 位窗口?您似乎已将您的应用程序与 32 位 cuda 4.2 运行时相关联。看看您是否可以在您的计算机上找到 cudart32_42_9.dll(可能使用 windows 搜索)并将其复制到与您尝试运行的 openCV 可执行文件相同的位置。
-
我正在运行 64 位窗口。
-
您复制了文件吗?你安装了 cuda 工具包和 sdk 了吗?
-
我确实找到了 cudart32_42_9.dll,您建议我将其添加到 openCV 可执行文件位置。您能否更明确地了解位置,例如哪个文件夹。我还想提一提 cudart32_42_9.dll 存在于 NVdia SDK.2\C\Commom\bin 中,并且我已经在 tools->options->projects and solutions->VC++directories- 中包含了路径> 可执行文件(来自下拉菜单的显示目录)。这是正确的过程吗?无论如何,如果您能提及 openCV 可执行文件位置,那将会很有帮助
-
您在 MS VS 2008 下编译应用程序,对吗?当您编译应用程序时,它会创建一个(通常)称为可执行文件的 .exe 文件。您构建的这个 .exe 文件将位于您正在构建的项目的 MS VS 项目目录中。找到在 MS VS 中构建时正在构建的 .exe 文件。然后将 cudart dll 文件复制到该位置。您正在进入此绑定,因为您有 64 位窗口但链接到 32 位 cudart。您在 VC++ 目录中所做的更改不会影响可执行文件的 dll 加载路径。
标签: visual-studio-2008 opencv cuda