1

我正在使用 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。

4

1 回答 1

1

预构建的 OpenCV 2.2 及更高版本带有 2 个版本的二进制文件 (dll)。

\build\gpu目录中的 dll是超集,并且使用 CUDA 支持构建。因此,要使用它们,您需要 CUDA 运行时 dll(cudart、npp 等)。如果您想使用 OpenCV 的 GPU 功能,则需要这些二进制文件。这些也可用于检查您的系统中是否存在 GPU。

在 OpenCV 的构建目录中的 x86 或 x64 文件夹中存在的其他版本的 dll 是在不支持 CUDA 的情况下构建的(尽管该目录中也存在 gpu dll)。您不需要 cuda dll 来使用这些二进制文件。

这两个版本均使用英特尔线程构建模块支持构建,因此分别需要 tbb_debug.dll 和 tbb.dll 进行调试和发布配置。因此,如果您使用 OpenCV 的 CPU 功能,它们将被 TBB 加速。

于 2012-09-19T17:03:47.603 回答