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.
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
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
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!
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
Où 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.