C ++ Qt – Comment append “-std = c ++ 11” au makefile généré par qmake?

Je développe un programme dans Qt. Son makefile est généré automatiquement à partir du fichier .pro. J’ai besoin d’utiliser du code qui nécessite que l’indicateur -std = c ++ 11 soit configuré pour g ++. Où dans .pro dois-je append ce drapeau? (le fait de ne modifier que le Makefile ne fonctionnera pas car il sera remplacé par le fichier nouvellement généré, chaque fois que je construis le projet).

Vous pouvez append les éléments suivants à Qt .pro pour C ++ 11: –

 CONFIG += c++11 

A partir de Qt 5.4, C ++ 14 peut être activé avec

 CONFIG += c++14 

Vous pouvez modifier les drapeaux CXX:

 QMAKE_CXXFLAGS += -std=c++11 

Je le règle généralement comme:

 QMAKE_CXXFLAGS += -std=c++11 -Wall -Wextra -pedantic 

Vous pouvez trouver tentant d’insérer l’indicateur spécifique (que vous mentionnez)

 QMAKE_CXXFLAGS += -std=c++11 

dans votre fichier .pro, mais cela insérera simplement cet indicateur en votre nom.

C’est insuffisant Le bon moyen est d’insérer à la place

 CONFIG += c++11 

dans ton profil. Deux ou trois modifications nécessaires sont alors effectuées par qmake :

  1. -std=c++11 est inséré.
  2. -stdlib=libc++ est inséré.
  3. Si vous êtes sur un Mac, -mmacosx-version-min=10.6 devient -mmacosx-version-min=10.7 . (Peut-être qu’une modification similaire est nécessaire sur d’autres OS ou versions de système d’exploitation).

(Un problème similaire à 1 et 2. )

J’utilise Snow Leopad 10.6.8 et gcc 4.9, je devais utiliser

 CONFIG += c++11 

au lieu de

 QMAKE_CXXFLAGS += -std=c++11 

Ce dernier n’était tout simplement pas reconnu.

 CONFIG += c++11 

dans le fichier .pro semble fonctionner pour moi avec le SDK Qt4 après avoir installé qt5-default sur mon bureau Ubuntu:

 sudo apt install qt5-default 

De toute façon, le -std=c++0x makefile généré contient une -std=c++0x je soupçonne d’être suffisante pour comstackr mon code C ++ 11.