Чому деякі програми не можуть отримувати вихід з дитячих процесів?


0

Деякі програми не відображають результати деяких дитячих процесів. Як бачите - це скріншот,

Я спробував запустити php --versionтри утиліти консолі: Git Bash (MinGw), рідний командний рядок Windows 8 та термінал Cygwin.

Перші дві програми повертають інформацію про версію PHP, але Cygwin не друкує жодного виводу. Однак Cygwin - не єдина програма, яка не друкує консольний вихід дитячих процесів. Наприклад, qmake(частина Qt Framework) також не повертає нічого в Cygwin при запуску qmake -query. Як наслідок, я не можу використовувати Qt Creator на своєму ПК, оскільки Qt Creator не може аналізувати вихід з qmake.

Будь-які ідеї, як вирішити цю проблему? В даний час я використовую Windows 8 x64, але ця проблема також мала місце, коли на моєму ПК був встановлений Windows 7 x64.


Ви встановили PHP та Qmake через інсталятор Cygwin? Я не знав, що PHP був наданий Cygwin ...
DanteTheEgregore

Ні, ці програми були встановлені за допомогою власних інсталяторів, але деякі нативні утиліти Windows, такі як ipconfig, tracert тощо, відмінно працюють у Cygwin. Тому я подумав, що Cygwin взагалі не має проблем із запуском програм Windows, але лише деякі програми працюють у Cygwin неправильно.
Серг

Відповіді:


0

Ви змішуєте терміни!

Перший скріншот такий же, як і другий - це стандартна консоль Windows.

Третій скріншот насправді - це емулятор м'яти, але не справжня консоль. Бачите "хв" у його назві? Величезна кількість додатків взагалі не може бути запущена в м'яті!

Я вважаю, що рішення - використовувати належну консоль. Крім того, ви можете спробувати ConEmu як розширений термінал Windows, це "все пропоновано та повнофункціональне" (я автор).

Щодо творця QT ... Спробуйте використати ProcessMonitor, щоб знайти проблему. Так, це не швидко і просто, але ви можете спробувати. Якщо він працює на іншому комп'ютері, ви можете порівняти свої журнали. Також може бути встановлений глобальний гачок сторонніх інструментів, що заважає нормальній поведінці трубопроводів. Може бути щось інше ... Віруси чи антивіруси, ні?


Дякую за пораду, я спробую ConEmu. Також я просто спробував написати додаток Hello World за допомогою Visual C ++ 2012, і Cygwin знову не надрукував свій вихід. Тож Cygwin насправді не справляється з деякими програмами. Однак ситуація з Qt Creator все ще залишається незрозумілою: чому Qt Creator не може працювати з qmake.exe? Здається, що Qt Creator намагається прочитати конфігурацію з qmake, але отримує порожню відповідь. Я підозрюю, що причина цього питання повинна бути подібною. Чи використовує Qt Creator деякі інструменти для емуляції Unix?
Серж

Відповідь оновлено. Спробувати ProcessMonitor?
Максим

Я не виявив жодних проблем із використанням ProcessMonitor. Також я спробував різні типи встановлення Qt, такі як онлайн / офлайн, x86 / x64, і нарешті я виявив, що проблема була в каталозі установки. Раніше я встановив Qt до розділу D, і він не працював. Тепер я встановив його на розділ C і все працювало чудово. Здається, ця помилка пов'язана з Qt, але не з системою загалом. У будь-якому випадку, дякую за допомогу, проблема вирішена!
Serg

0

Як припустив користувач Maximus тут раніше, причина була Антивірусне програмне забезпечення. Після того, як я додав Cygwin та Qt до списку винятків, обидві програми почали працювати належним чином.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.