我从我创建的Qt应用程序编译了一个c ++源文件。现在我想运行生成的exe文件,并将其输入和输出重定向到txt文件。但是当我尝试从QProcess运行它时,它无法使用退出代码-2 执行。
这是我使用QProcess编译文件的方法 -
arguments << fileName << "-o" << exeFileName << "-static";
connect(compileProcess, SIGNAL(finished(int)), this, SLOT(compiled()));
compileProcess->start(QString("g++"), arguments);
这就是我在插槽compile() -
中运行QProcess的exe的方法runProcess->setStandardInputFile(inputFilename);
runProcess->setStandardOutputFile(QFileInfo(exeFileName).path() + "/output.txt");
int code = runProcess->execute(exeFileName); //code = -2
手动启动时程序运行正常。那么,为什么不能从QProcess开始呢? 我正在使用Windows 7上的Qt 5.0.2
这是我正在编译的源文件 -
#include <iostream>
int main() {
std::string s;s
std::cin >> s;
std::cout << s;
return 0;
}
答案 0 :(得分:0)
我终于开始工作了。 exe文件路径中有空格,Qt没有隐式添加引号。明确添加引号可以完成这项工作。
runProcess->start("\"" + exeFileName + "\"");