11
votes

Comment formater / modifier QMake Build Sortie

Comment puis-je formater la sortie de marque ( !! en modifiant uniquement le fichier de projet QMake !! ). Mes lignes de compilation continuent de croître et les avertissements d'une ligne / des erreurs disparaissent presque entre eux.

Je pense à quelque chose comme xxx

merci à considérer


0 commentaires

3 Réponses :


0
votes

Vous pouvez supprimer l'impression avec '@' et faire écho ce que vous voulez voir:

Exemple simple: P>

out.ext:  $(OBJ)
    @echo $(CC) -o out.ext
    @$(CC) -o out.ext $(OBJ) $(OTHER_FLAGS_ETC)


2 commentaires

Euh je veux faire la magie inversement et seulement à l'intérieur de QMake. Désolé pour la confusion.


OP a demandé qmake



5
votes

Il existe différentes approches. Et vous pouvez les rendre configurables.

  • Si vous ajoutez @ signe devant la ligne dans la règle, la commande elle-même ne sera pas imprimée, mais sa sortie sera.
  • Si vous ajoutez -werror à votre CFLAGS variable (vous en avez un, n'est-ce pas? C'est une pratique courante!) , vous ne manquerez certainement aucun avertissement - la construction s'arrêtera après la première.
  • Vous pouvez Rediriger la sortie standard de votre commande à / dev / null , laissant uniquement le flux d'erreur (ce n'est pas pour votre cas particulier, car GCC ne le fait pas rendement de rendement mais peut être utile pour d'autres commandes).

    Malheureusement, pour qmake seule la deuxième approche s'applique. Ajouter à votre fichier de projet: xxx

    et les maquillages générés utiliseront ces indicateurs lorsqu'ils invoquent Compiler, de sorte que la construction s'arrête à chaque avertissement. <<


    (cette section sera déplacée vers une autre question dès que celle-ci apparaît).

    Pour que vous puissiez utiliser tout cela - vous pouvez tout faire configurable! Voici l'exemple: xxx

    donc, si vous invoquez faire comme ceci: xxx

    Cela imprimera tout. Si vous invoquez xxx

    la valeur courte sera utilisé par défaut (notez le ? = Opérateur au lieu d'habituel < code> = !) Et les règles vont se développer à une telle version xxx

    Qu'est-ce qui donnera grand chose que nécessaire.

    Cette approche, Avec la configuration, est utilisé dans le code de production. Par exemple, je l'ai vu dans les fabricants glacés Ifedtea d'Ubuntu.


4 commentaires

Euh je veux faire la magie inversement et seulement à l'intérieur de QMake. Désolé pour la confusion.


+1: pour -werror. C'est la meilleure suggestion imo et cette peut faire faire dans votre fichier de projet.


Merci pour vos gars de votre aide, mais -werror ne fournit pas ce dont j'ai besoin. (Nous ne pouvons pas quitter l'avertissement, car nous avons des avertissements de dépréciation, qui restent à l'intérieur jusqu'à ce que le travailleur attribué modifie la section)


Si vous utilisez le compilateur MSVC, utilisez -wx plutôt que -werror pour traiter les avertissements comme des erreurs.



18
votes

dans qmake , vous pouvez ajouter une option de configuration silencieuse: xxx

(remarque: je pense que c'est la commande. C'est quelque chose de similaire à cela.)

qui devrait supprimer la majeure partie de la sortie, et seules des lignes d'impression comme "Compiler AO", ainsi que vos avertissements et erreurs. Je crois que cela est similaire à celui de 'S .Silent. directive (je pense que c'est celui-ci ...)

Vous voudrez peut-être faire attention Avec cela, cependant, parce qu'il supprime beaucoup d'informations que des analyseurs d'erreur aiment utiliser. Par exemple, si vous compilez avec une configuration SubDirs , elle n'imprimera pas lors de la modification des différents répertoires.


1 commentaires

impressionnant. exactement ce dont j'avais besoin