我正在尝试在Qt中创建一个远程编译系统。我想要做的是从客户端获取C / C ++源代码并通过服务器上的QProcess调用本地可用的GCC,创建exe文件然后将exe发送回客户端。简单吧?
exe文件生成完美,但Qt无法将文件读入数组以进行传输。
我的代码是:
QByteArray arr;
qDebug() << "To Client: exe";
QFile f("compiled.exe");
qDebug() << f.exists(); //output = false
QString path = QDir::toNativeSeparators(QFileInfo(f).absoluteFilePath());
qDebug() << path; //perfect path is coming
qDebug() << f.open(QIODevice::ReadOnly); //output = flase
arr = f.readAll(); // size of arr is 0
f1.close();
client->write(arr); //zero bytes written
虽然exe文件非常存在,但我得到了这样的输出。我尝试了同一目录中的其他文件,它的工作非常完美。只有exe文件不起作用。 我使用MSVC v16.00.40219.10作为编译器在Windows上使用Qt 4.8.1 32位。
提前致谢!!
答案 0 :(得分:1)
无需推测,使用QFile::open()
时有description of error codes。
顺便说一句
qDebug() << f.exists(); //output = false
似乎compiled.exe
不在进程工作目录中,也不在路径中的任何目标中。提供完整的路径...