Reputation: 1497
So, in Visual Studio 2013 I created a program in which I use OpenCV. But when I want to compile the program, there is an error that the MSVCP100D.dll is missing. I compile it in Debug version and I don't want to compile the program in Release version, so I need this file.
I tried to install the Microsoft Visual C++ 2010 Redistributable Package, but it is already on my computer. Should I download the single file (MSVCP100D.dll) and paste it in C:\windows\system32\? Because there I can find the MSVCP100.dll file, but not the MSVCP100D.dll file.
I also read related questions about this problem, but it didn't help.
Edit: And now the MSVCP110D.dll is missing too. Same error, but now the MSVCP110D.dll file.
Upvotes: 1
Views: 3707
Reputation: 845
Solution (Worked for me): In your Visual Studio project properties, under Linker>General>Additional Library Directories, use $(OPENCV_DIR)\x64\vc12\lib (For your system this may change depending on whether you use x86 or x64 version). Then your program should run. At least it worked for me :)
Explanation: I had the same problem with same version of OpenCV and VS. After a lot of research I found out that the problem might be incompatibility of OpenCV's pre-built binaries with Visual Studio 2013.
@Sheng Jiang's answer helped me. I used dependency walker and found that opencv_core2410d.dll depended on MSVCP100D.dll because opencv libraries that I was using were complied using Visual Studio 2010 (placed in vc10 folder) and MSVCP100D.dll is associated with Visual Studio 2010.
One option was to recompile the OpenCV code with Visual Studio 2013 (as suggested by Sheng Jiang's answer above). But this was unnecessary since OpenCV 2.4.10 already provides pre-built libraries built using Visual Studio 2013. These pre-built libraries are in the C:\opencv\build\x64\vc12 folder (exact path might differ for your machine).
Here comes the importance of vc10, vc11 and vc12 libraries. You choose the folder corresponding to the version of Visual Studio you are using. My mistake was to choose vc10 instead of vc12.
Upvotes: 0
Reputation: 15261
You have some code compiled in Visual Studio 2010. Recompile the code in Visual Studio 2013 to get rid of the MSVCP100D.dll dependency (replace it with MSVCP120D.dll that is).
Upvotes: 3