2016-04-19 64 views
0

我想執行一個.exe文件,該文件由g ++(或gcc)從Qt程序編譯。我指的是this topic並試圖使其運行:如何從另一個Qt程序執行分離的C++可執行文件?

// 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"; 

但結果我永遠是「錯誤」並且在我的屏幕沒有變化,即使該計劃的「工作」是一個GUI程序。我在終端,但在QProcess我不能:()。我做錯了什麼?

+0

如何在您的可執行文件中添加一個'.exe'? – IAmInPLS

+0

@AlexisP。在示例中沒有看到「.exe」,所以我不添加它 –

+0

您已倒轉邏輯ther e:t在出現錯誤時是錯誤的,不正確。嘗試使用絕對路徑而不是'。/ work'。當前目錄看起來破損,它也應該是一個絕對路徑,例如'/家庭/ youruser'。還要注意,startDetached是一個靜態方法,對'myProc','QProcess :: startDetached(...)'不做任何事情,通常的語法(但你也應該工作) –

回答

1

這可能是一個錯字問題。確保QDir::setCurrent("home/")確實返回true;否則,目錄更改失敗,你不在目錄你想要的

嘗試開始你的executbale首先附加(使用myProc.execute()而不是myProc.startDetached(),並檢查發生了什麼,這可能會顯示一些錯誤,你看不到開始分離時,請確保你的程序'工作'不執行任何輸入from stdin。

+0

我使用Ubuntu操作系統 –

+0

這不是我的問題。我認爲這是關於QProcess :( –

+0

@NguyễnChí:請給,一些更多的投入......難以理解你提供的fex信息發生了什麼 – John

相關問題