Comment exécuter la commande shell une fois que la compilation est terminée.pro in QT?

Quelles modifications dois-je apporter à l' .pro le fichier si je veux exécuter chmod commande, exécutez le fichier binaire de sortie, ou effectuez d'autres opérations.

19
demandé sur Tshepang 2011-05-10 11:53:36

4 réponses

j'ai eu un problème similaire. Je voulais un outil spécial (versioner) pour exécuter le code à chaque fois que le Makefile était exécuté. Voici la solution:

(à lire dans le manuel Qmake, configuration de l'environnement de qmake, Section: Personnalisation de la sortie du Makefile)

créer votre propre cible Makefile. Spécifiez la commande etc.

mytarget.target = .buildfile
mytarget.commands = touch $$mytarget.target

QMAKE_EXTRA_TARGETS += mytarget

de cette façon, vous avez une cible supplémentaire que vous pouvez appeler avec make mytarget par exemple. Si vous voulez l'attacher ensemble pour le buildtarget que vous devrez ajouter:

POST_TARGETDEPS += mytarget

j'Espère que vous aide.

cordialement

D

26
répondu Dariusz Scharsig 2018-07-10 10:10:02

si vous utilisez Qt Creator, vous pouvez ajouter des étapes de construction personnalisées dans le panneau de projets: http://doc.qt.nokia.com/qtcreator-2.1/creator-build-settings.html#adding-custom-build-steps

0
répondu Stephen Chu 2011-05-10 15:22:24

La bonne réponse dépend exactement ce que vous voulez, et quand. Cependant, comme le montrent certains commentaires publiés précédemment ici QMAKE_POST_LINK est probablement ce que vous voulez plutôt que d' POST_TARGETDEPS.

consultez ce billet: QMake: exécuter le script après la construction

d'une part, lorsque vous utilisez POST_TARGETDEPS qui démarre avant que votre exe ne soit créé (sous Windows) ou avant qu'il ne soit recréé (sous Linux)! QMake fonctionne différemment selon la plateforme et le complier.

j'ai eu besoin de faire quelques "traitement de symboles" sur un exe quand il a été recompilé. POST_TARGETDEPS m'a donné des problèmes à la fois dans Windows (en utilisant mingw) et Linux (en utilisant gcc). Sous Windows, il exécutait mon script prématurément, et sous Linux il écrasait mon exe après que je l'ai modifié (c'est-à-dire que j'ai ajouté mes informations de débogage à l'exe après que je l'ai dépouillé dans mon script externe). QMAKE_POST_LINK fonctionnait parfaitement, cependant, dans les deux cas. C'est aussi court, doux, et plus clair en comparaison!

0
répondu BuvinJ 2017-05-23 12:09:46

une Autre façon de faire les choses dans l'ordre donné est d'utiliser vides "super" cible:

super.depends = target_pre first target_post
QMAKE_EXTRA_TARGETS += super

first - est la cible par défaut de qmake, et target_pre et target_post quelques cibles. Maintenant make super il suffit de faire la chose.

0
répondu ephemerr 2017-09-25 12:47:46