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).
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
:
-std=c++11
est inséré.-stdlib=libc++
est inséré.-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.)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
Vous pouvez changer les drapeaux CXX:
QMAKE_CXXFLAGS += -std=c++11
Je le configure habituellement comme:
QMAKE_CXXFLAGS += -std=c++11 -Wall -Wextra -pedantic
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.
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.