2010-02-09 90 views
6

我在我的Visual Studio項目中使用OpenMP,目前在轉換爲QT創建者時非常認真地考慮。 (不Visual Studio的吸?我希望從微軟更多)Qt是否支持OpenMP?

但無論如何...沒有Qt Creator的支持OpenMP的? 在這種情況下,我該怎麼做才能啓用它?或者可能默認啓用?我需要做一些特別的事嗎?

感謝您的建議。 Ignacio。

回答

15

QT創建者是否支持OpenMP?

正如別人提到的,並不是Qt本身支持OpenMP,而是編譯器。

我應該怎麼做,使之?

如果您已經安裝了recent Qt 4.6.x SDK(提示:包含最新版本的QtCreator 1.3),它附帶MinGW 4.4,內置了OpenMP支持。

我需要做一些特別的東西?

編輯您的項目.pro文件,並添加以下行OpenMP的標誌傳遞給編譯:

QMAKE_CXXFLAGS += -fopenmp 
LIBS += -fopenmp 

享受!

+0

LIBS + = -fopenmp是peter說的需要的。 – ravindrab 2014-04-10 05:11:13

+0

謝謝。我相應地更新了答案。 – 2014-04-11 09:48:52

8

的Qt本身沒有自己的C++編譯器,而是使用現有的,例如在Windows平臺上它是MinGW的。自從4.2.0正式migw支持OpenMP

+0

謝謝!,因此它能夠,但我怎麼在QT激活的OpenMP? – nacho4d 2010-02-09 09:01:45

+1

它不是「在QT中」。這是「在我的編譯器中」,所以它真的是編譯器依賴的。對於GCC,使用'-fopenmp'選項。 – 2010-02-09 09:06:31

+0

您仍然可以在Qt和OpenMP中使用Microsoft C++編譯器,並且不使用Visual Studio IDE。例如,您可以使用Emacs作爲編輯器,並使用Makefiles構建系統。考慮到你已經安裝了VC++,這可能比設置mingw少。 – gavinb 2010-02-09 11:36:57

4

除了esavard的答案,我發現我需要添加:

LIBS + = -fopenmp

該程序正確鏈接。我在Ubuntu 10.10(64位)上用QT 4.7.0運行QT creator 2.0.1。希望這有助於其他任何人遇到「未定義的引用'GOMP_parallel_start'」類型的錯誤。

2

添加兩行編譯和鏈接 QMAKE_CXXFLAGS + = -fopenmp QMAKE_LFLAGS + = -fopenmp