2016-04-19 66 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

相关问题