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
:
-std=c++11
est inséré. -stdlib=libc++
est inséré. -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.