Reputation: 337
I am using visual studio 2010. Before starting my project, I installed cuda SDK 4.2. After that, I installed opencv 2.4.2. In my project, I'm using only opencv and it works correctly. However, when I try to run my program on another computer it tells me that cuda dll (like cudart32_42_9.dll, npp32_42_9.dll and nvcuda.dll) are needed. I don't use at all cuda and do no reference in my project property to cuda. I would like to know how to remove those dependency. I don't understand why visual studio add dll I don't use.
Upvotes: 1
Views: 2659
Reputation: 16816
The pre-built OpenCV 2.2 onwards, comes with 2 versions of the binaries (dlls).
The dlls in the \build\gpu directory are the superset and are built with CUDA support. Therefore, to use them you require the CUDA Runtime dlls (cudart, npp etc). These binaries are required if you want to use the GPU functionality of OpenCV. These may also be used to check if you have a GPU present in your system or not.
The other version of dlls which are present in the x86 or x64 folder in the build directory of OpenCV, are built without CUDA support (although a gpu dll is also present in that directory). You don't need cuda dlls to use these binaries.
Both of these versions are built with Intel Thread Building Blocks support, and so require tbb_debug.dll and tbb.dll for Debug and Release configurations respectively. So if you use the CPU functions of OpenCV, they will be TBB Accelerated.
Upvotes: 1