2016-12-22 9 views
0

Мое приложение запускает разные файлы bash, когда я запускаю свое приложение в QTCreator, все работает нормально, но когда я запускаю свое приложение напрямую, я не могу прочитать вывод QProcess. даже когда я запускаю свое приложение через Terminal, он отлично работает, так где же проблема?
я использую QT 5.7/OSX Platform
вот мой кодQProcess Неверное поведение

 QProcess proc ; 
    proc.start(QCoreApplication::applicationDirPath() + "/check.sh"); 
    proc.waitForFinished(); 
    QString output = QString(proc.readAll()); 
    qDebug() << output ; 
+0

что вы имеете в виду под управлением приложения напрямую? выполняется check.sh при запуске приложения? –

+0

Где вы ожидаете выхода процесса? Если вы запустите приложение, дважды щелкнув Finder, вы не увидите stderr или stdout нигде, т. Е. Вы не увидите 'qDebug()' выход в любом месте. – E4z9

+0

Я знаю, что я использую Qmessagebox для отображения вывода, но код, представленный здесь, является частью моего кода только для того, чтобы показать, как я читаю вывод –

ответ

0

Есть некоторые возможности вы должны исследовать

  • Можете ли вы подтвердить, что скрипты работают, хотя, когда вы запустите его автономному?
  • QProcess всегда был немного пугливым в отношении создания процессов при использовании сценариев, в зависимости от платформы. Есть ли сценарий в этом? Соответствует ли он оболочке, из которой вы запускаете свою программу? Возможно, вам потребуется создать процесс на основе оболочки, указав имя файла сценария в качестве параметра.
  • QProcess :: readAll() Может ничего не вернуть, если выходной буфер не был очищен процессом. Вывод EOL в конце заставил бы флеш.
+0

. Я не знаю, почему, но он работает, когда я добавляю пути bin и sbin через qputenv вручную –

+1

Вы также можете попробовать 'QProcess :: setProcessEnvironment()', если вы не хотите менять собственную среду программ. –

+0

@ Koorosh Ghorbani, что написано в скрипте? #! bash? или #!/bin/bash? Бывший не работает, если в среде нет этой папки. Кроме того, символьные ссылки могут быть проблемой – Swift