Changer les drapeaux de compilation dans Qt sous Mac OS X?
Question
J'ai installé Qt pour Mac et je compile mon projet Qt après avoir ajouté dans le fichier .Pro
CONFIG(release, debug|release):QMAKE_CXXFLAGS += -O3 -fomit-frame-pointer
pour optimiser la vitesse.
Cependant, je vois toujours que la commande où g ++ est exécuté inclut les -Os, ce qui optimise la taille. Je voudrais l'enlever.
J'ai essayé plusieurs approches, comme
CONFIG(release, debug|release):QMAKE_CFLAGS_RELEASE -= -Os
CONFIG(release, debug|release):QMAKE_CXXFLAGS -= -Os
et
CONFIG(release, debug|release):QMAKE_CXXFLAGS = -O3 -fomit-frame-pointer
CONFIG(release, debug|release):QMAKE_CFLAGS_RELEASE = -O3 -fomit-frame-pointer
(no +)
Mais rien. -Os TOUJOURS apparaître.
Comment puis-je changer cela?
J'ai trouvé le fichier qmake.conf sous /usr/local/QT4.5/mkspecs. Il inclut un fichier mac-g ++. Conf, mais je ne peux pas le modifier et chmod ne fonctionne pas: chmod: mac-g ++. Conf: opération non autorisée
Des idées?
La solution
J'ai pu résoudre ce problème en modifiant le fichier .pro de mon projet:
QMAKE_CXXFLAGS_RELEASE -= -O2
QMAKE_CXXFLAGS_RELEASE += -O3
J'ai vérifié qu'il prenait effet en surveillant le résultat de la compilation.
Autres conseils
Vous devez exécuter la commande qmake
dans le répertoire de votre projet après avoir modifié le fichier .pro
.
La commande chmod échoue car ce répertoire appartient à root (c'est-à-dire pas à votre utilisateur).
Vous pouvez gérer cela avec:
sudo chmod ....
Je suppose que ma grande question est de savoir si vous savez que -O3 optimise réellement la vitesse ou non. Comme Pavel l'a indiqué, vous pouvez éditer le Makefile, le construire manuellement et le tester. Mon hypothèse est que -O3 ne fera pas beaucoup de différence et pourrait être légèrement pire.
En ce qui concerne le paramétrage de CXXFLAGS dans Qt Creator, le mieux est de remplacer l'appel à Make. Dans la section "Projets" dans la section "Etapes de construction". et " Faire " et ajoutez CXXFLAGS = '- O3 -fomit-frame-pointer' à l'option "Générer des arguments". section.
J'espère que ça aide!