web-dev-qa-db-fra.com

C ++ Qt - Comment ajouter "-std = c ++ 11" au fichier Make généré par qmake?

Je développe un programme en Qt. Son makefile est généré automatiquement à partir du fichier .pro. J'ai besoin d'utiliser du code qui a besoin de l'indicateur -std = c ++ 11 pour être configuré pour g ++. Où devrais-je ajouter ce drapeau dans .pro? (changer seulement le Makefile ne fonctionnera pas car il est écrasé par celui qui vient d'être généré, chaque fois que je construis le projet).

53
Natalia Zoń

Vous pouvez trouver tentant d'insérer le drapeau spécifique (que vous mentionnez)

QMAKE_CXXFLAGS += -std=c++11

dans votre fichier .pro, mais cela n’insérera que cet indicateur en votre nom.

C'est insuffisant. La bonne façon est d'insérer à la place

CONFIG += c++11

dans ton profil. Deux ou trois modifications nécessaires sont ensuite apporté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. (Des modifications similaires sont peut-être nécessaires sur d'autres systèmes d'exploitation ou versions de systèmes d'exploitation.)

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

13
Calaf

Vous pouvez ajouter ce qui suit au Qt .pro pour C++ 11: -

CONFIG += c++11

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

CONFIG += c++14
76
TheDarkKnight

Vous pouvez changer les drapeaux CXX:

QMAKE_CXXFLAGS += -std=c++11

Je le configure habituellement comme:

QMAKE_CXXFLAGS += -std=c++11 -Wall -Wextra -pedantic
23
BЈовић

J'utilise Snow Leopard 10.6.8 et gcc 4.9, je devais utiliser

CONFIG += c++11

au lieu de

QMAKE_CXXFLAGS += -std=c++11

Ce dernier n'a tout simplement pas été reconnu.

3
Wall-E
CONFIG += c++11 

dans le fichier .pro semble fonctionner pour moi avec le SDK Qt4 après l’installation de qt5-default sur mon bureau Ubuntu:

Sudo apt install qt5-default

Quoi qu'il en soit, le fichier makefile généré contient un -std=c++0x Je suppose que l’option est suffisante pour compiler mon code C++ 11.

0
Pascal Séguy