web-dev-qa-db-fra.com

Ajout d'une option de compilation supplémentaire dans Qt

Où dans Qt puis-je spécifier des options de compilation supplémentaires? Comme par exemple -std = c ++ 0x?

42
smallB

Vous pouvez essayer d'ajouter

QMAKE_CXXFLAGS += -std=c++0x

dans votre fichier .pro.

Cependant, cela ne doit pas être utilisé dans Qt 5 pour activer une norme c ++ spécifique. Au lieu, c++11 ou c++14 dans CONFIG variable pour ce faire. Il activera GNU (-std = gnu ++ 11), mais si cela n'est pas souhaité, ajoutez également strict_c++ si vous souhaitez les désactiver. Par exemple, cela devrait passer -std=c++11 au compilateur:

CONFIG += c++11 strict_c++
47
Dotti

Dans votre fichier .pro, vous pouvez ajouter:

QMAKE_CXXFLAGS += -std=c++0x

Je pense que chaque variable de la spécification qmake.conf peut être modifié comme ça.

Par exemple, la spécification win32-g ++ a, entre autres variables, celles-ci:

QMAKE_CC        = gcc
QMAKE_Lex       = flex
QMAKE_LEXFLAGS      =
QMAKE_YACC      = byacc
QMAKE_YACCFLAGS     = -d
QMAKE_CFLAGS        =
QMAKE_CFLAGS_DEPS   = -M
QMAKE_CFLAGS_WARN_ON    = -Wall
QMAKE_CFLAGS_WARN_OFF   = -w
QMAKE_CFLAGS_RELEASE    = -O2
QMAKE_CFLAGS_DEBUG  = -g
QMAKE_CFLAGS_YACC   = -Wno-unused -Wno-parentheses

QMAKE_CXX       = g++
QMAKE_CXXFLAGS      = $$QMAKE_CFLAGS
QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
QMAKE_CXXFLAGS_WARN_ON  = $$QMAKE_CFLAGS_WARN_ON
QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
QMAKE_CXXFLAGS_RELEASE  = $$QMAKE_CFLAGS_RELEASE
QMAKE_CXXFLAGS_DEBUG    = $$QMAKE_CFLAGS_DEBUG
QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
QMAKE_CXXFLAGS_THREAD   = $$QMAKE_CFLAGS_THREAD
QMAKE_CXXFLAGS_RTTI_ON  = -frtti
QMAKE_CXXFLAGS_RTTI_OFF = -fno-rtti
QMAKE_CXXFLAGS_EXCEPTIONS_ON = -fexceptions -mthreads
QMAKE_CXXFLAGS_EXCEPTIONS_OFF = -fno-exceptions
17
Vinicius Kamakura

La façon dont QT traite les options du compilateur se fait via le fichier .pro. C'est une épée à double tranchant si je peux me permettre. Il crée une belle abstraction, surtout lors de la compilation de grands projets. Le problème est que vous devez rechercher ou mémoriser comment ajouter le drapeau. Dans le cas de C++ 0X, vous devez ajouter l'indicateur suivant à votre fichier .pro:

QMAKE_CXXFLAGS += -std=c++0x

Heureusement, la plupart des indicateurs dont vous avez besoin sont automatiquement ajoutés si vous utilisez QtCreator.

6
kmdent