OpenMP and WinSxS
If you've tried to build an OpenMP application and seen this error dialog pop-up: "This application has failed to start because vcompd.dll was not found." then you've come to the right place.
It turns out that due to vcomp(d).lib being a pure import lib it doesn't have a manifest in it. So to get the manifest for vcomp(d).dll we put it in omp.h. In fact if you look in omp.h, starting with this line, #if !defined(_OPENMP_NOFORCE_MANIFEST), you will see where we do the manifest generation.
This requires the programmer to include omp.h even in cases where they're only using OpenMP pragmas. Should only be five seconds worth of work, although more than five seconds worth of work to figure out what the problem was. Hopefully this blog has all of the keywords one might search if they run across this issue.
Comments
Anonymous
December 23, 2005
Thanks saved alot of trouble :)
Couldnt find out why i kept getting that errorAnonymous
January 04, 2006
Glad to hear it could help :-)Anonymous
January 16, 2006
Yeah seriously, that post sure did rule all. I spent an half hour trying to find an answer to it. :-PAnonymous
May 22, 2006
Thanks :)Anonymous
August 26, 2006
Thanks for that, I think OpenMP in VS2005 should get more attention - compined with C++CLI it's a great way of speeding up critical paths in managed code.Anonymous
October 04, 2006
Solution to the message "This application has failed to start because vcompd.dll was not found. Re-installing the application may fix this problem." when creating openmp applications with Visual Studio 2005Anonymous
November 05, 2006
Greate!! It's help me very much.Anonymous
May 17, 2007
I already got into trouble, thought visual studio's installation got corrupted. Thanks for the solution to the problem.Anonymous
October 19, 2007
Very helpful! Now if you could only help me solve my multi-threading issues. :-)Anonymous
December 18, 2007
Me too, me too! This turned what would certainly be a few hours of work into a simple fix.Anonymous
January 10, 2008
Hello, [visual studio 2008] if using a configuration like: app with _DEBUG defined (debug version) and Multithreaded DLL (release version of the runtime) you must include <omp.h> like this: #undef _DEBUG #include <omp.h> #define _DEBUGAnonymous
April 11, 2008
Thanks a lot, it was a great deal of helpAnonymous
April 14, 2008
The comment has been removedAnonymous
June 13, 2008
I was having this problem even though I had included the #include <omp.h> as part of my headers. What fixed it was moving the omp include statement at the end of all my other includes. Before, it had been the first include.Anonymous
October 08, 2008
PingBack from http://aisweb.artinsoft.net/aisblogs/jose_aguilar_blog/archive/2006/10/05/1196.aspx