Search code examples
c++qtdllopenmplibgomp

The procedure entry point GOMP_parallel could not be located in the dll


I have a QT application that uses OpenMP. (mingw, win8) I want to use the .exe file without qt creator. I have already put all dlls in the build directory, but I still get this message when I run .exe file.

By the way everything works fine if I run it from Qt creator.

That's the only OpenMP code I have in my app:

#pragma omp parallel for schedule(dynamic, 1)

And that's how I enable OpenMP in .pro file

QMAKE_CXXFLAGS+= -fopenmp
QMAKE_LFLAGS +=  -fopenmp

Not sure if it matters but this code works in QThread. I mean I have one thread for GUI and the second one for computations.

Any ideas why this happens?

upd

And yes, I put libgomp-1.dll there too.

upd 2

Dependency walker just showed several missing microsoft dlls. Don't think that's the problem.


Solution

  • Okay, the problem is solved.

    I copied dlls from:

    \Qt\Qt5.5.1\5.5\mingw492_32\bin\

    instead of:

    \Qt\Qt5.5.1\Tools\mingw492_32\bin\

    Maybe somebody will find it helpful.

    And yeah, Dependency walker wouldn't help in the situation like this. That OpenMP dll wasn't missing it was just not the one I needed.