Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
QProcess无法执行简单的控制台程序 我从我创建的QT应用程序编译了一个C++源文件。现在我想运行生成的exe文件,并将其输入和输出重定向到txt文件。但当我尝试从QProcess运行它时,它无法使用退出代码-2执行_C++_Qt_Qprocess - Fatal编程技术网

QProcess无法执行简单的控制台程序 我从我创建的QT应用程序编译了一个C++源文件。现在我想运行生成的exe文件,并将其输入和输出重定向到txt文件。但当我尝试从QProcess运行它时,它无法使用退出代码-2执行

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); 当我手动启动程序时,程序运行良好。那

这就是我使用QProcess编译文件的方式-

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 + "\"");