QProcess无法执行简单的控制台程序

时间:2014-02-13 10:43:16

标签: c++ qt qprocess

我从我创建的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;
}

1 个答案:

答案 0 :(得分:0)

我终于开始工作了。 exe文件路径中有空格,Qt没有隐式添加引号。明确添加引号可以完成这项工作。

runProcess->start("\"" + exeFileName + "\"");