【发布时间】:2012-09-11 11:07:13
【问题描述】:
我正在使用 Visual Studio 2010。 在开始我的项目之前,我安装了 cuda SDK 4.2。 之后,我安装了opencv 2.4.2。在我的项目中,我只使用 opencv 并且它工作正常。但是,当我尝试在另一台计算机上运行我的程序时,它告诉我需要 cuda dll(如 cudart32_42_9.dll、npp32_42_9.dll 和 nvcuda.dll)。我根本不使用 cuda,也没有在我的项目属性中引用 cuda。我想知道如何删除这些依赖。我不明白为什么visual studio会添加我不使用的dll。
【问题讨论】:
-
您可能正在使用 GPU 版本的 OpenCV 库文件。在另一台计算机上,检查 lib 文件的路径。确保它没有指向 OpenCV 目录中的 gpu 文件夹。
-
@sgar91 我用依赖walker检查了opencv dll依赖,我想我用cuda构建了opencv。所以即使我不使用 cuda,opencv dll 也有依赖关系。我想我别无选择,只能将 cuda dll 与程序一起提供。另一台电脑上,没有安装opencv,我给opencv dll带程序。
-
与其自己构建opencv,不如从sourceforge下载预构建的OpenCV。它包含二进制文件的 cuda 和非 cuda 版本。只需将非cuda版本的dll复制到另一台计算机即可。
-
@sgar91 实际上,它有效。我只需要从 common 文件夹中添加 tbb.dll,但最大的优势是现在无法运行 cuda 的计算机现在可以运行我的程序了。
标签: visual-studio-2010 opencv linker cuda