Pourquoi certains programmes ne peuvent pas recevoir la sortie des processus enfants?

0

Certains programmes n'affichent pas la sortie de certains processus enfants. Comme vous pouvez le voir is a screenshot,

J'ai essayé de courir php --version dans trois utilitaires de console: Git Bash (MinGw), ligne de commande Windows 8 native et terminal Cygwin.

Les deux premiers programmes renvoient des informations sur la version de PHP, mais Cygwin n’imprime aucune sortie. Cygwin n'est toutefois pas le seul programme à ne pas imprimer la sortie de la console des processus enfants. Par exemple, qmake (la partie de Qt Framework) ne renvoie également rien dans Cygwin lors de l'exécution qmake -query. Par conséquent, je ne peux pas utiliser Qt Creator sur mon PC, car Qt Creator ne peut pas analyser la sortie de qmake.

Des idées sur la façon de résoudre ce problème? J'utilise actuellement Windows 8 x64, mais ce problème s'est également produit lorsque Windows 7 x64 était installé sur mon PC.

Serg
la source
Avez-vous installé PHP et Qmake via l’installateur Cygwin? Je ne savais pas que PHP était fourni par Cygwin ...
DanteTheEgregore
Non, ces programmes ont été installés à l’aide de leurs programmes d’installation natifs, mais certains utilitaires Windows pour consoles natives, tels que ipconfig, tracert, etc., fonctionnent parfaitement sous Cygwin. Je pensais donc que Cygwin n’avait pas de problèmes à exécuter les applications Windows en général, mais seules certaines applications ne fonctionnaient pas correctement.
Serg

Réponses:

0

Vous mélangez les termes!

La première capture d'écran est la même que la seconde - il s'agit d'une console Windows standard.

La troisième capture d'écran est en fait un émulateur de menthe, mais pas une vraie console. Voir "min" en son nom? Une quantité énorme d'applications ne peut pas être exécutée dans la menthe du tout!

Je crois que la solution consiste à utiliser une console appropriée. En outre, vous pouvez essayer ConEmu en tant que terminal Windows avancé, il est "tout proposé et complet" (je suis l'auteur).

Quant au créateur de QT ... Essayez d'utiliser ProcessMonitor pour trouver le problème. Oui, ce n'est pas rapide et facile, mais vous pouvez essayer. Si cela fonctionne sur un autre PC que vous avez, vous pouvez comparer vos journaux. De plus, certains outils tiers peuvent installer des crochets globaux, qui interfèrent avec le comportement normal de la tuyauterie. Peut-être autre chose ... Des virus ou des antivirus, non?

Maximus
la source
Merci pour le conseil, je vais essayer ConEmu. De plus, je viens d'essayer d'écrire une application Hello World à l'aide de Visual C ++ 2012 et Cygwin n'a plus imprimé sa sortie. Cygwin ne fonctionne donc pas bien avec certaines applications. Cependant, la situation avec Qt Creator reste incertaine: pourquoi Qt Creator ne peut-il pas fonctionner avec qmake.exe? Il semble que Qt Creator essaie de lire une configuration de qmake, mais reçoit une réponse vide. Je soupçonne que la raison de ce problème doit être similaire. Qt Creator utilise-t-il certains outils pour émuler Unix?
Serg
Réponse mise à jour. Essayez ProcessMonitor?
Maximus
Je n'ai trouvé aucun problème avec ProcessMonitor. J'ai aussi essayé différents types d'installation de Qt comme en ligne / hors ligne, x86 / x64, et finalement j'ai découvert que le problème se trouvait dans le répertoire d'installation. Auparavant, j'ai installé Qt sur la partition D et cela n'a pas fonctionné. Maintenant, je l'ai installé sur la partition C et tout a bien fonctionné. Il semble que ce bogue soit lié à Qt, mais pas au système en général. En tout cas, merci pour l'aide, le problème est résolu!
Serg
0

Comme l'utilisateur suggéré par Maximus ici avant, la raison était un logiciel antivirus. Après avoir ajouté Cygwin et Qt à la liste des exceptions, les deux programmes ont commencé à fonctionner correctement.

Serg
la source