我正在尝试在 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文件不起作用。我在 Windows 上使用 Qt 4.8.1 32 位,使用 MSVC v16.00.40219.10 作为编译器。
提前致谢!!