2010-02-09 25 views
6

Estoy usando OpenMP en mis proyectos de Visual Studio y actualmente estoy pensando seriamente en cambiar al creador de QT. (¿No es vicioso Visual Studio?, Espero mucho más de Microsoft)¿Qt admite OpenMP?

Pero de todos modos ... ¿El creador de QT admite OpenMP? En ese caso, ¿qué debo hacer para habilitarlo? ¿O tal vez está habilitado por defecto? ¿Necesito hacer algo especial?

Gracias por sus consejos. Ignacio.

Respuesta

15

¿El creador de QT admite OpenMP?

Como alguien más mencionó, no es Qt sí mismo que admite OpenMP pero el compilador.

¿Qué debo hacer para habilitarlo?

Si ha instalado un recent Qt 4.6.x SDK (pista: últimas QtCreator 1.3 se incluye), viene con MinGW 4.4 que tiene soporte OpenMP incorporado.

¿Tengo que hacer algo especial?

Editar su proyecto .pro archivo y añadir las siguientes líneas para pasar las banderas de OpenMP para el compilador:

QMAKE_CXXFLAGS += -fopenmp 
LIBS += -fopenmp 

Enjoy!

+0

LIBS + = -fopenmp era necesaria como dijo peter. – ravindrab

+0

Gracias. Actualicé la respuesta en consecuencia. –

8

Qt en sí no tiene un compilador propio de C++, en su lugar usa los existentes, por ejemplo, en la plataforma de Windows es mingw. Oficialmente migw admite OpenMP desde 4.2.0

+0

Gracias !, por lo que su es capaz, pero ¿Cómo activo OpenMP en QT? – nacho4d

+1

No está "en QT". Está "en mi compilador", así que realmente depende del compilador. Para GCC, use la opción '-fopenmp'. –

+0

Aún puede usar el compilador de Microsoft C++ con Qt y OpenMP, y simplemente no usar el IDE de Visual Studio. Por ejemplo, puede usar Emacs como su editor y construir el sistema usando Makefiles. Esto puede ser menos esfuerzo que configurar mingw, dado que ya tiene instalado VC++. – gavinb

4

Además de la respuesta de esavard, me di cuenta que tenía que añadir:

LIBS + = -fopenmp

para el programa de vincular correctamente. Estoy ejecutando el creador de QT 2.0.1 con QT 4.7.0 en Ubuntu 10.10 (64 bit). Espero que esto ayude a los demás a encontrar los errores de tipo "GOMP_parallel_start '" de referencia indefinida.

2

añadir dos líneas tanto para compilar y enlazar QMAKE_CXXFLAGS + = -fopenmp QMAKE_LFLAGS + = -fopenmp