C++ Qt - comment ajouter "- std=C++11 " au makefile généré par qmake?
je développe un programme en Qt. Son makefile est généré automatiquement à partir du .pro file. J'ai besoin d'utiliser un code qui a besoin du drapeau-std=C++11 pour être configuré pour g++. Où ça ?pro dois-je ajouter ce drapeau? (changer seulement le Makefile ne fonctionnera pas car il est écrasé par le nouveau produit, chaque fois que je construis le projet).
5 réponses
vous pouvez ajouter ce qui suit au Qt .pro pour C++11: -
CONFIG += c++11
depuis Qt 5.4, C++14 peut être activé avec
CONFIG += c++14
vous pouvez changer les drapeaux CXX:
QMAKE_CXXFLAGS += -std=c++11
Je l'ai habituellement réglé comme:
QMAKE_CXXFLAGS += -std=c++11 -Wall -Wextra -pedantic
vous pourriez trouver tentant d'insérer le drapeau spécifique (que vous mentionnez)
QMAKE_CXXFLAGS += -std=c++11
dans votre .pro file, mais cela n'insérera que ce drapeau en votre nom.
c'est insuffisant. La bonne façon est d'insérer à la place
CONFIG += c++11
dans votre .pro file. Deux ou trois modifications nécessaires sont alors apportées par qmake
:
-
-std=c++11
est inséré. -
-stdlib=libc++
est inséré. - si vous êtes sur un Mac,
-mmacosx-version-min=10.6
devient-mmacosx-version-min=10.7
. (Peut-être qu'un changement similaire est nécessaire sur d'autres versions OS ou OS.)
j'utilise Snow Leopad 10.6.8 et gcc 4.9, j'ai dû utiliser
CONFIG += c++11
au lieu de
QMAKE_CXXFLAGS += -std=c++11
ce dernier n'était tout simplement pas reconnu.
CONFIG += c++11
in .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
quoi qu'il en soit le makefile généré contient une option -std=c++0x
que je soupçonne d'être suffisante pour compiler mon code C++11.