2010-02-09 210 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