Qt是否支持OpenMP?

8

我在我的Visual Studio项目中使用OpenMP,现在正在认真考虑转换到QT Creator。(Microsoft的Visual Studio糟透了,我对它期望更高)

但是... QT Creator支持OpenMP吗? 如果是这样,我应该怎么做才能启用它?或者它默认已经启用了吗?我需要做些特别的事情吗?

感谢您的建议。 Ignacio。

4个回答

19

QT Creator是否支持OpenMP?

如其他人所述,不是Qt本身支持OpenMP,而是编译器支持。

我需要怎么做才能启用它?

如果你已经安装了最新的Qt 4.6.x SDK(提示:包含最新的QtCreator 1.3),它自带具有内置OpenMP支持的MinGW 4.4。

我需要进行一些特殊设置吗?

编辑你的项目.pro文件并添加以下行以将OpenMP标志传递给编译器:

QMAKE_CXXFLAGS += -fopenmp
LIBS += -fopenmp

享受吧!


需要添加 LIBS += -fopenmp,正如 Peter 所说。 - ravindrab
当我添加这些选项时,为什么会出现此错误?:-1: error: unsupported option '-fopenmp' clang: error: unsupported option '-fopenmp' make[1]: *** [ibionics_gui.app/Contents/MacOS/ibionics_gui] Error 1 make: *** [sub-PreclinicalTestbenchUserInterface-make_first-ordered] Error 2 - Kévin Sanchez Lacroix

8

Qt本身没有自己的C++编译器,而是使用现有的编译器。例如,在Windows平台上,它使用mingw。官方支持OpenMP的版本为4.2.0。


谢谢!所以它是支持的,但是我该如何在QT中启用OpenMP? - nacho4d
1
不是“在QT中”。它是“在我的编译器中”,因此它真正依赖于编译器。对于GCC,请使用“-fopenmp”选项。 - F'x
你仍然可以使用Microsoft C++编译器与Qt和OpenMP,只是不使用Visual Studio IDE。例如,您可以使用Emacs作为编辑器,并使用Makefiles构建系统。如果您已经安装了VC ++,则这可能比设置mingw更容易。 - gavinb
我知道可以使用MSVC编译器,但我的Qt安装也包含了mingv。 - Dewfy

5
除了esavard的答案外,我发现我还需要添加:

LIBS += -fopenmp

才能使程序正确链接。我在Ubuntu 10.10(64位)上使用QT creator 2.0.1和QT 4.7.0。希望这对遇到“undefined reference to 'GOMP_parallel_start'”类型错误的其他人有所帮助。

2

为编译和链接添加两行代码 QMAKE_CXXFLAGS += -fopenmp QMAKE_LFLAGS += -fopenmp


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接