2010-02-09 3 views
6

Sto usando OpenMP nei miei progetti di Visual Studio e sto pensando seriamente al passaggio al creatore di QT. (Visual Studio non fa schifo?, Mi aspetto molto di più da Microsoft)Qt supporta OpenMP?

Ma comunque ... Il creatore di QT supporta OpenMP? In tal caso, cosa devo fare per abilitarlo? O forse è abilitato di default? Devo fare qualcosa di speciale?

Grazie per i vostri consigli. Ignacio.

risposta

15

Il creatore di QT supporta OpenMP?

Come menzionato da altri, non è Qt stesso che supporta OpenMP ma il compilatore.

Cosa devo fare per abilitarlo?

Se è stata installata una recent Qt 4.6.x SDK (suggerimento: ultima QtCreator 1.3 è incluso), si tratta con MinGW 4.4, che ha il supporto OpenMP built-in.

Devo fare qualcosa di speciale?

modificare il progetto .pro del file e aggiungere le seguenti righe di passare le bandiere OpenMP al compilatore:

QMAKE_CXXFLAGS += -fopenmp 
LIBS += -fopenmp 

Enjoy!

+0

LIBS + = -fopenmp era necessario come detto da peter. – ravindrab

+0

Grazie. Ho aggiornato la risposta di conseguenza. –

8

Qt non ha un proprio compilatore C++, ma utilizza esistente, ad esempio su piattaforma Windows è mingw. Ufficialmente migw supporta OpenMP dal 4.2.0

+0

Grazie !, quindi la sua è capace, ma come faccio ad attivare OpenMP in QT? – nacho4d

+1

Non è "in QT". È "nel mio compilatore", quindi dipende dal compilatore. Per GCC, usa l'opzione '-fopenmp'. –

+0

È ancora possibile utilizzare il compilatore Microsoft C++ con Qt e OpenMP e non utilizzare l'IDE di Visual Studio. Ad esempio, potresti usare Emacs come editor e costruire il sistema usando Makefile. Questo potrebbe essere uno sforzo minore rispetto all'impostazione di mingw, dato che hai già installato VC++. – gavinb

4

Oltre alla risposta di esavard, ho scoperto che avevo bisogno di aggiungere:

LIBS + = -fopenmp

per il programma per collegare correttamente. Sto utilizzando QT creatore 2.0.1 con QT 4.7.0 su Ubuntu 10.10 (64 bit). Spero che questo aiuti chiunque altro a eseguire gli errori di tipo "riferimento non definito a" GOMP_parallel_start "".

2

aggiungere due linea sia per compilare e collegare QMAKE_CXXFLAGS + = -fopenmp QMAKE_LFLAGS + = -fopenmp