QProcess无法执行简单的控制台程序 我从我创建的QT应用程序编译了一个C++源文件。现在我想运行生成的exe文件,并将其输入和输出重定向到txt文件。但当我尝试从QProcess运行它时,它无法使用退出代码-2执行
这就是我使用QProcess编译文件的方式-QProcess无法执行简单的控制台程序 我从我创建的QT应用程序编译了一个C++源文件。现在我想运行生成的exe文件,并将其输入和输出重定向到txt文件。但当我尝试从QProcess运行它时,它无法使用退出代码-2执行,c++,qt,qprocess,C++,Qt,Qprocess,这就是我使用QProcess编译文件的方式- arguments << fileName << "-o" << exeFileName << "-static"; connect(compileProcess, SIGNAL(finished(int)), this, SLOT(compiled())); compileProcess->start(QString("g++"), arguments); 当我手动启动程序时,程序运行良好。那
arguments << fileName << "-o" << exeFileName << "-static";
connect(compileProcess, SIGNAL(finished(int)), this, SLOT(compiled()));
compileProcess->start(QString("g++"), arguments);
当我手动启动程序时,程序运行良好。那么,为什么不能从QProcess开始呢?
我正在Windows7上使用Qt5.0.2
这是我正在编译的源文件-
#include <iostream>
int main() {
std::string s;s
std::cin >> s;
std::cout << s;
return 0;
}
#包括
int main(){
std::字符串s;s
标准:cin>>s;
std::cout我终于让它工作了。exe文件路径中有空格,Qt没有在其周围隐式添加引号。添加引号显式完成了这项工作
runProcess->start("\"" + exeFileName + "\"");
如果添加一个readAllStandardError
并打印内容,它是否有任何信息?-2
通常无法以正确的权限打开可执行文件,或者找不到可执行文件,因此也要仔细检查exeFileName
是否指向正确的位置。readAllStandardError
不返回任何信息。我验证了exeFileName
指向正确的文件。我唯一能想到的另一件事是QProcess设置到应用程序工作目录,而不是查看exeFileName
路径。有一种工作目录方法:基本上QProcess将其设置到目录y我们的应用程序正在从运行,但偶尔会导致问题。好的,但是exeFileName
具有文件的绝对路径,即使QProcess无法找到文件?
runProcess->start("\"" + exeFileName + "\"");