2013-06-04 178 views
3

我想編譯http://www.kevinbeason.com/smallpt/ raytracer使用Qt5和Visual Studio 2012編譯器。Qt5,Visual Studio 2012 Express和OpenMp。如何?

它的工作好了,但是當我試圖通過添加

QMAKE_CXXFLAGS += -fopenmp 
LIBS += -fopenmp 

到project.pro 使用OpenMP的,Qt的說/ fopenmp無法識別和忽略。

當我編譯使用VS命令

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

它的工作原理,我得到一個程序快3倍那麼一個從Qt的編譯。

如何讓Qt識別openmp以及如何在命令行中啓用其他優化?

在此先感謝。

+0

嘗試使用'QMAKE_LFLAGS + = -fopenmp'而不是'LIBS + = -fopenmp'。 –

+0

相同。警告LNK4044:選項'/ fopenmp'非重新調用; ignorée –

+0

爲什麼downvote?請留下評論來解釋原因或取消downvote。 –

回答

6

我終於得到了所有必需的元素,把它使用OpenMP從Qt Creator的編譯:

  1. 添加#include <omp.h>有關人士介紹,如果您有 上述命令行編譯它不是必需的。
  2. QMAKE_CXXFLAGS += -openmp添加到項目文件中。它不會工作 與-fopenmp。不需要像我那樣的任何openmp庫(LIBS += -openmp)既不爲QMAKE_LFLAGS += -openmp
  3. 編譯爲發佈。通過調試,它不會影響性能。

其他的優化選項在mkspecs\win32-msvc2012\ qmake.conf

希望這有助於別人已經配置。

+0

謝謝,正是我所缺少的。 – flankechen

相關問題