这几天有个项目需要写个界面,由于前期的代码是用C写的,因此毅然决定使用QT来做个界面。
背景:
- 原始后端程序使用纯C语言编写
- 程序中使用了openMP多线程加速
- QT原生为C++编程,因此就成了C/C++混合编程
- 编译器使用的MinGW(gcc–5.3.0),支持openMP
在QT中,如果要使用openMP进行加速,需要在pro文件中加入(MinGW gcc版本的):
/* 注意,下面这个flag是为C++准备 openMP支持的 */
QMAKE_CXXFLAGS += -fopenmp
LIBS += -fopenmp
然而,我的混合编程的程序无法openMP加速!!!坑竟然是需要再在pro文件里加入一个flag:
/* 原因是C需要这个flag来触发openMP实现加速!!! */
QMAKE_CFLAGS += -fopenmp
结果图: