74 votes

Configuration des commutateurs du compilateur GCC dans Qt, QtCreator et QMake

J'ai récemment essayé d'utiliser Qt Creator 1.3.2, Qt 4.6.2, et GCC 4.4.0 (version 32 bits) Windows 7 (64-bit) pour compiler une application à l'aide de certains de l'expérimentation des extensions C++0x et rencontré les suivantes (fatal) erreur:

Ce fichier nécessite compilateur et de la bibliothèque de support pour la prochaine Standard ISO C++, C++0x. Cette prise en charge est actuellement au stade expérimental, et doit être activé avec l'option-std=c++0x ou -std=gnu++0x options du compilateur.

Dans ma recherche d'une solution, je suis tombé sur le fil qmake et drapeaux du compilateur?, et ajouté ce qui suit à l' .pro fichier:

CXXFLAGS += -std=c++0x

mais cela ne semble pas faire une différence.

Donc, je m'attends il y a une certaine étiquette, je dois ajouter à l' .pro (projet) de fichiers, mais je n'ai jamais testé avec le compilateur GCC commutateurs dans Qt, QMake, et QtCreator avant, et je suis incertain à propos de la bonne invokation / incantation. Donc, ma question est de savoir comment vous définissez compilateur GCC commutateurs lors de l'utilisation de QtCreator, QMake, et Qt?

105voto

andand Points 7779

Cela revient à lire le manuel . Au lieu d'utiliser CXXFLAGS dans le fichier .pro, vous devez utiliser QMAKE_CXXFLAGS comme dans:

main.cpp:

 #include <cinttypes>

int main() { return 0; }
 

main.pro:

 SOURCES += main.cpp
QMAKE_CXXFLAGS += -std=c++0x
 

-6voto

Jacek Points 1008

Je pense que vous avez peut-être oublié de créer un fichier Makefile basé sur un nouveau fichier .pro. Il suffit de courir:

 qmake yourproject.pro
 

Si cela échoue toujours, vous pouvez éditer le Makefile généré et ajouter cet indicateur.

EDIT: Nouvelle solution. Ajoutez -std = c ++0x directement dans Makefile. Il y a une ligne semblable à ceci:

 CXXFLAGS = -pipe -g -gdwarf-2 -arch i386 -Wall -W $(DEFINES)
 

Ajoutez simplement -std = c ++0x pour obtenir le résultat suivant:

 CXXFLAGS = -pipe -g -gdwarf-2 -arch i386 -Wall -std=c++0x -W $(DEFINES)
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X