-1

我正在尝试在 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 作为编译器。

提前致谢!!

4

1 回答 1

1

不用推测,使用时有错误码说明QFile::open()。顺便提一句

qDebug() << f.exists(); //output = false

它似乎compiled.exe不在进程工作目录中,也不在路径中的任何目录中。提供完整路径...

于 2012-11-02T09:44:44.197 回答