2016-04-19 3 views
0

Ich möchte eine EXE-Datei ausführen, die von g ++ (oder gcc) aus einem Qt-Programm kompiliert wurde. Ich beziehe mich auf this topic und versuchen, es laufen zu lassen:Wie führe ich eine abgelegte C++ - Programmdatei von einem anderen Qt-Programm aus?

// Setup the working directory 
QDir::setCurrent("/home/myproject"); 

// Start the process (uses new working dir) 
bool t= myProc.startDetached("./work"); 
if (t==false) std::cout<< "Error"; 
else std::cout <<"OK"; 

aber das Ergebnis, das ich habe, ist immer „Error“ und es gibt keine Veränderung in meinem Bildschirm selbst wenn das Programm „Arbeit“ ist ein GUI-Programm. Ich habe es im Terminal, aber in QProcess kann ich nicht :(. Was mache ich falsch?

+0

Was ist mit dem Hinzufügen einer '.exe' zu ​​Ihrer ausführbaren Datei? – IAmInPLS

+0

@AlexisP. Ich sehe nicht" .exe "in Beispiel, so dass ich es nicht –

+0

Sie haben invertierte Logik ther e: t ist falsch, wenn ein Fehler vorliegt, nicht wahr. Versuchen Sie mit einem absoluten Pfad anstelle von './Work'. Das aktuelle Verzeichnis sieht fehlerhaft aus, es sollte auch ein absoluter Pfad sein, z. '/ home/youruser'. Beachten Sie auch, dass startDetached eine statische Methode ist und nichts zu 'myProc' macht,' QProcess :: startDetached (...) 'wäre die übliche Syntax (aber auch Ihre sollte funktionieren) –

Antwort

1

Es ist wahrscheinlich ein Tippfehler. Stellen Sie sicher QDir::setCurrent("home/") gibt wahr, wenn nicht, Verzeichnisänderung fehlgeschlagen und Sie sind nicht in der

Versuchen Sie, zuerst Ihr Executbale angehängt zu starten (verwenden Sie myProc.execute() anstelle von myProc.startDetached(), und überprüfen Sie, was passiert. Dies kann einige Fehler aufdecken, die Sie nicht sehen können, wenn losgelöst gestartet wird. Stellen Sie sicher, dass Ihr Programm keine Eingaben ausführt von stdin.

+0

Ich benutze Ubuntu OS –

+0

es ist nicht mein Problem. Ich denke, es geht um QProcess :( –

+0

@ Nguyễn Chí: bitte geben Sie einige weitere Eingaben ... schwer zu verstehen Was passiert mit den von Ihnen bereitgestellten Fex-Informationen – John

Verwandte Themen