views:

463

answers:

5

I am using Intel TBB C++ for multithreading an application on visual studio 2008. When I run the executable I get a dialog saying "MSVCP80D.dll" was not found. There is so much on the net about this that it confuses me.

Please help.

EDIT: Based on answers, finally I was able to fix the "dll missing" problem. I had given a path to TBB lib of vc8 leading to dependency on vc8 dlls, which are used with visual studio 2005, not with 2008. (Using depends (http://www.dependencywalker.com/ ) it is easy to determine the run-time dependencies of an executable.) I changed by project to depend on vc9 dlls, not vc8 and then it worked fine.

Another thing to note is use of manifest files on windows. Manifest files describe dependencies. The manifest files must be generated while writing an application as it is necessary.

A: 

Your app is compiled with debug version. Debug version of VC runtime is not in path. Try to generate release version.

lsalamon
I am running the app from dev environment. I want to run the debug version.
Amit Kumar
A: 

Are you running the program on your development machine? If you are not, you might get this error. The "D" at the end of the filename means that the DLL is a debug DLL, and often not on computers without Visual Studio installed. You're not supposed to redistribute it (copy it around), either. You should compile a "release" version of your application and run that. If you really can't do that for some reason, and it's only one or two computers, then try installing the express version of visual studio on that computer.

If you are having this problem on your development machine, it can apparently be caused by a compiler/linker problem. Try doing a clean build ("clean", then "build" in Visual Studio).

Doug
I am running from dev environment. I tried clean build too. Still the problem.
Amit Kumar
A: 

Ok, after a lot of search, and by chance, I landed on this forum http://www.codeguru.com/forum/showthread.php?t=446789 which says something I interpret as "the version of TBB I am using does not support VS 2008".

But this still uncertain.

Amit Kumar
+1  A: 

MSVC80D is VS 2005. As part of VS2008 you would have MSVC90D instead.

MSalters
+1  A: 

You can find them online at various places. Just scan it for a virus and put it in your program's path and everything should work fine. You may need more than one of the debug dlls, you can use depends32.exe to see what you are missing.

Steve
Thanks, depends22.exe http://www.dependencywalker.com/ was quite useful.
Amit Kumar
The debug DLLs may not be distributed legally.
MSalters
That is true, but he didn't ask about legality, just how to get it working :D
Steve