Lorsque je compile un projet sous Qt Creator 2.8/Qt5.1 avec VS 2010, tout va bien. Si je fais de même avec MinGW, j'obtiens l'erreur suivante.
error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
Je comprends que je dois activer C + 11, mais j'ai CONFIG += console c++11
dans mon profil. N'est-ce pas ce qui est nécessaire? Que fais-je de mal?
Quand je regarde la marque que je vois:
CXXFLAGS = -pipe -fno-keep-inline-dllexport -g -std=c++0x
Déroutant, comme je le dis c ++ 11 dans le fichier pro.
qmake
etc, à partir de zéro, aucun résultatVérifié:
Solution trouvée, mais ne peut l'accepter que dans un certain temps: https://stackoverflow.com/a/19530028/356726
Ok, grâce à vos indices, je l'ai compris.
Après avoir essayé tous les conseils possibles d'en haut, sans succès, j'ai exclu tout sous-projet auquel je pouvais penser dans mon projet. Finalement, j'ai trouvé un exemple QML .pro qui n'avait pas CONFIG += c++11
défini.
C'était à l'origine de l'erreur. La cause première n'était donc pas le projet sur lequel je travaillais, mais un sous-projet qui a cependant été compilé à la même étape.
Essayez de changer le mkspecs/win32-g++/qmake.conf
ligne qui dit:
QMAKE_CXXFLAGS_CXX11 = -std=c++0x
à:
QMAKE_CXXFLAGS_CXX11 = -std=c++11
et relancez qmake.
Quelques détails supplémentaires:
L'ajout de la fonction "c ++ 11" à la variable CONFIG
qmake provoque la mkspecs/features/c++11.prf
fichier à extraire (voir la section "Ajout de nouvelles fonctionnalités de configuration" du document qmake Advanced Usage pour plus de détails).
Ce profil qmake a un QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_CXX11
ligne entre autres qui configure la prise en charge de C++ 11. Ainsi, l'ajout de "c ++ 11" à la variable CONFIG est la bonne façon d'indiquer que vous souhaitez que le support de c ++ 11 pour qmake, comme vous l'avez mentionné dans un commentaire.
J'utilise Qt Creator 2.7.2 et j'ai cette ligne dans mon fichier .pro:
QMAKE_CXXFLAGS += -std=c++11
Est-ce que ça marche pour toi?
qmake utilisera tous les drapeaux dont on dispose pour c ++ 11. Vous pouvez donc les remplacer comme:
unix: QMAKE_CXXFLAGS_CXX11 = -std = c ++ 11
CONFIG * = c ++ 11
Vous pouvez même lui dire d'utiliser -std = c ++ 14 ou -std = c ++ 17 à la place lorsque c ++ 11 est ajouté à la configuration car les anciens qmake peuvent ne pas en être conscients.