4

我正在尝试使用 Qt5 和 Visual Studio 2012 编译器编译http://www.kevinbeason.com/smallpt/ raytracer。

它工作正常,但是当我尝试通过添加使用 openmp

QMAKE_CXXFLAGS += -fopenmp
LIBS += -fopenmp

对于 project.pro ,Qt 说 /fopenmp 无法识别和忽略。

当我使用 VS 命令编译时

cl /c /O2 /EHsc /openmp main.cpp

它可以工作,我得到的程序比从 Qt 编译的程序快 3 倍。

如何让 Qt 识别 openmp 以及如何在命令行中启用其他优化?

提前致谢。

4

2 回答 2

7

我终于得到了使用 Qt Creator 的 openmp 编译它所需的所有元素:

  1. 添加#include <omp.h>到源代码中,如果使用上述命令行编译,则不需要。
  2. 添加QMAKE_CXXFLAGS += -openmp到项目文件中。它不适用于-fopenmp. 不需要像我一样的任何 openmp 库(LIBS += -openmpQMAKE_LFLAGS += -openmp
  3. 编译为发行版。使用调试它对性能没有影响。

其他优化选项已在mkspecs\win32-msvc2012\ qmake.conf

希望这对其他人有帮助。

于 2013-06-12T09:24:50.597 回答
0

我想用openmp运行Qt项目。我已经按照上述步骤进行,我可以构建项目,但是执行时间是增加而不是减少。

这是我使用的配置

CONFIG += console c++11
CONFIG -= app_bundle
#CONFIG -= qt
QMAKE_CXXFLAGS+= -openmp
于 2021-06-25T05:44:50.437 回答