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 (15)
  1. Michael says:

    Thanks saved alot of trouble 🙂

    Couldnt find out why i kept getting that error

  2. MSDN Archive says:

    Glad to hear it could help 🙂

  3. Nick says:

    Yeah seriously, that post sure did rule all. I spent an half hour trying to find an answer to it. 😛

  4. Dave says:

    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.

  5. 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 2005

  6. p.rojanavasu says:

    Greate!! It’s help me very much.

  7. Nezos says:

    I already got into trouble, thought visual studio’s installation got corrupted.

    Thanks for the solution to the problem.

  8. Mike says:

    Very helpful!  Now if you could only help me solve my multi-threading issues.  🙂

  9. Steve says:

    Me too, me too!  This turned what would certainly be a few hours of work into a simple fix.

  10. Alexandru Gris says:

    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 _DEBUG

  11. Mandeep says:

    Thanks a lot, it was a great deal of help

  12. ibai arrizabalaga says:

    Thanks for help!!!! Was starting to be pissed with it 😀

  13. Dave K. says:

    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.

Comments are closed.

Skip to main content