Executable wird beim Kopieren irgendwie beschädigt

Ich verwende QNetworkAccessManager von Qt, um eine Datei von einem Speicherort (derzeit der lokale Computer, in Zukunft wird es sich jedoch um einen HTTP-Server handeln) herunterzuladen und sie vorübergehend in der TEMP-Datei (Linux Ubuntu) zu speichern. Das Problem, das ich festgestellt habe, ist, dass die Datei (die eine ausführbare Datei ist) dabei beschädigt wird: Wenn ich versuche, die Datei als ausführbare Datei auszuführen, wird ein klassischer Fehler der problematischen Kreuzkompilierung zurückgegeben.

Nun, das ist interessant, weil die Datei eine ausführbare Datei für ein Embedded Linux-Gerät ist. Ich lade die ausführbare Datei auf mein TEMP herunter, damit ich sie später an das Gerät senden kann. In diesem Fall (mit FileZilla) wird jedoch die folgende Fehlermeldung angezeigt:

. / re8k_interface-tgt: Zeile 1: Syntaxfehler: unerwartetes Wort (erwartet ")")

Nun weiß ich, dass die Originaldatei in Ordnung ist, wenn sie auf das Gerät kopiert und ausgeführt wird. Daher ist mir bewusst, dass dies etwas mit dem Prozess des Kopierens der Datei zu tun hat, entweder beim Herunterladen oder beim Schreiben in ein QFile-Objekt. So mache ich es jetzt:

//Call to download
QUrl ulrTemp("//" + downloadUrls[downloadStep].arg(ui->sbID->text()));
ulrTemp.setScheme("file");

qDebug() << "Downloading from" << ulrTemp;

poReply = downloadNetworkManager->get(QNetworkRequest(ulrTemp));

connect(poReply,SIGNAL(downloadProgress(qint64,qint64)),this,SLOT(slotTransferProgress(qint64,qint64)));
connect(poReply,SIGNAL(error(QNetworkReply::NetworkError)),this,SLOT(slotTransferError(QNetworkReply::NetworkError)));


//When finished
QByteArray downloadedData;
downloadedData = reply->readAll();

reply->deleteLater();
poReply->deleteLater();

static const QString tempFilePath = QDir::tempPath();

QFile file(tempFilePath + "/" + downloadNames[downloadStep]);

if (!file.open(QFile::WriteOnly | QFile::Truncate))
{
    qDebug() << "Failure opening temp file to write: " << file.fileName();

    return;
}

QDataStream stream(&file);

stream << downloadedData;

file.close();

Ps .: Ich bin mir der Notwendigkeit bewusst, Berechtigungen festzulegen

Die kopierte Dateigröße stimmt genau mit dem Original überein. Also, wo ist das Problem, das ich nicht sehen kann?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage