在 Windows 和 Mingw 5.30 中使用 Qt 编译 OpenNN

Compile OpenNN with Qt in Windows and Mingw 5.30

我正在尝试使用 Qt 编译 openNN 项目。 我将 qt 预编译的 mingw32 用于 windows 和最后的 opennn 3.1 projekt 源。 Opennn 已经自带了 .pro 项目文件,可以直接用 qt creator/qmake.

然而,当我尝试编译它时,出现以下错误:

   D:/Projekte/opennn_build/opennn/release\libopennn.a(testing_analysis.o):testing_analysis.cpp:(.text+0xfc): undefined reference to `omp_get_num_threads'
D:/Projekte/opennn_build/opennn/release\libopennn.a(testing_analysis.o):testing_analysis.cpp:(.text+0x103): undefined reference to `omp_get_thread_num'
D:/Projekte/opennn_build/opennn/release\libopennn.a(testing_analysis.o):testing_analysis.cpp:(.text+0x22f): undefined reference to `GOMP_loop_dynamic_start'
D:/Projekte/opennn_build/opennn/release\libopennn.a(testing_analysis.o):testing_analysis.cpp:(.text+0x3d3): undefined reference to `GOMP_loop_dynamic_next'
D:/Projekte/opennn_build/opennn/release\libopennn.a(testing_analysis.o):testing_analysis.cpp:(.text+0x3e0): undefined reference to `GOMP_loop_end_nowait'
D:/Projekte/opennn_build/opennn/release\libopennn.a(testing_analysis.o):testing_analysis.cpp:(.text+0x64b): undefined reference to `GOMP_loop_dynamic_start'

它似乎连接到 openmp,但是 opennn 的 *.pro 文件已经包含了总是建议的行:

QMAKE_CXXFLAGS+= -fopenmp
QMAKE_LFLAGS +=  -fopenmp

尝试添加以下内容也无济于事

LIBS+= -fopenmp

我需要让它与 qt 一起工作,因为我想稍后将它添加到一个已经存在的 qt 项目中。

解决方法: 在 openn/tests/tests.pro 中编辑 以及 openn/examples/"exampletitle"/

中每个示例的 "exampletitle".pro 文件

变化:

win32-g++{
QMAKE_LFLAGS += -static-libgcc
QMAKE_LFLAGS += -static-libstdc++
QMAKE_LFLAGS += -static
}

win32-g++{
QMAKE_LFLAGS += -static-libgcc
QMAKE_LFLAGS += -static-libstdc++
QMAKE_LFLAGS += -static
LIBS += -fopenmp
}