172 votes

Comment activer C++11 dans Qt Creator ?

Le titre est assez explicite. J'ai téléchargé Qt Creator 2.7.0, et j'essaie de compiler un code C++11 de base :

int my_array[5] = {1, 2, 3, 4, 5};
for(int &x : my_array)
{
  x *= 2;
}

Je reçois l'erreur suivante :

range based for loops are not allowed in c++ 98 mode

Pourtant, selon cet article cette version de Qt Creator supporte C++11. Alors comment l'activer ?

264voto

Ali Points 18740

Selon ce site ajouter

CONFIG += c++11

à votre fichier .pro (voir au bas de cette page web). Il nécessite Qt 5.


Les autres réponses, suggérant

QMAKE_CXXFLAGS += -std=c++11 (ou QMAKE_CXXFLAGS += -std=c++0x )

travaillent également avec Qt 4.8 et gcc / clang.

33voto

Sherlock Points 544

Ajoutez ceci à votre fichier .pro

QMAKE_CXXFLAGS += -std=c++11

ou

CONFIG += c++11

18voto

KeillRandor Points 1406

Comme alternative pour traiter les deux cas abordés dans l'excellente réponse d'Ali, j'ajoute généralement

# With C++11 support
greaterThan(QT_MAJOR_VERSION, 4){    
CONFIG += c++11
} else {
QMAKE_CXXFLAGS += -std=c++0x
}

à mes fichiers de projet. Cela peut s'avérer pratique lorsque vous ne vous souciez pas vraiment de la version de Qt utilisée par les membres de votre équipe, mais que vous souhaitez que C++11 soit activé dans tous les cas.

8voto

guardezi Points 11

Ajouter à votre fichier qmake

QMAKE_CXXFLAGS+= -std=c++11
QMAKE_LFLAGS +=  -std=c++11

4voto

asloob Points 755

Si vous utilisez une version antérieure de QT (<5), essayez ceci

QMAKE_CXXFLAGS += -std=c++0x

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X