无法在 dll 中找到过程入口点 GOMP_parallel
The procedure entry point GOMP_parallel could not be located in the dll
我有一个使用 OpenMP 的 QT 应用程序。 (mingw, win8)
我想在没有 qt creator 的情况下使用 .exe 文件。我已经将所有 dll 放在构建目录中,但是当我 运行 .exe 文件时我仍然收到此消息。
顺便说一下,如果我 运行 来自 Qt creator,一切正常。
这是我的应用程序中唯一的 OpenMP 代码:
#pragma omp parallel for schedule(dynamic, 1)
这就是我在 .pro 文件中启用 OpenMP 的方式
QMAKE_CXXFLAGS+= -fopenmp
QMAKE_LFLAGS += -fopenmp
不确定这是否重要,但这段代码在 QThread 中有效。我的意思是我有一个线程用于 GUI,第二个线程用于计算。
知道为什么会这样吗?
upd
是的,我也把 libgomp-1.dll
放在那里。
更新 2
Dependency walker 刚刚显示了几个缺少的 Microsoft dll。不要认为这是问题所在。
好的,问题解决
我从以下位置复制了 dll:
\Qt\Qt5.5.1.5\mingw492_32\bin\
而不是:
\Qt\Qt5.5.1\Tools\mingw492_32\bin\
也许有人会觉得有用。
是的,Dependency walker 在这种情况下无济于事。那个 OpenMP dll 并没有丢失它只是不是我需要的那个。
我有一个使用 OpenMP 的 QT 应用程序。 (mingw, win8) 我想在没有 qt creator 的情况下使用 .exe 文件。我已经将所有 dll 放在构建目录中,但是当我 运行 .exe 文件时我仍然收到此消息。
顺便说一下,如果我 运行 来自 Qt creator,一切正常。
这是我的应用程序中唯一的 OpenMP 代码:
#pragma omp parallel for schedule(dynamic, 1)
这就是我在 .pro 文件中启用 OpenMP 的方式
QMAKE_CXXFLAGS+= -fopenmp
QMAKE_LFLAGS += -fopenmp
不确定这是否重要,但这段代码在 QThread 中有效。我的意思是我有一个线程用于 GUI,第二个线程用于计算。
知道为什么会这样吗?
upd
是的,我也把 libgomp-1.dll
放在那里。
更新 2
Dependency walker 刚刚显示了几个缺少的 Microsoft dll。不要认为这是问题所在。
好的,问题解决
我从以下位置复制了 dll:
\Qt\Qt5.5.1.5\mingw492_32\bin\
而不是:
\Qt\Qt5.5.1\Tools\mingw492_32\bin\
也许有人会觉得有用。
是的,Dependency walker 在这种情况下无济于事。那个 OpenMP dll 并没有丢失它只是不是我需要的那个。