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 ビットを使用しています。
前もって感謝します!!