Ich möchte die Qt-Bibliotheken (und eventuell meine Anwendung) für ein Windows x86_64-Ziel mithilfe eines Linux x86_64-Hostcomputers übergreifend kompilieren. Ich fühle mich nahe, aber ich habe möglicherweise ein grundlegendes Missverständnis einiger Teile dieses Prozesses.
Ich begann damit, alle mingw-Pakete auf meinem Fedora-Computer zu installieren und dann die win32-g++
Datei qmake.conf an meine Umgebung anzupassen. Ich scheine jedoch mit einigen scheinbar offensichtlichen Konfigurationsoptionen für Qt: -platform
und festzuhalten -xplatform
. In der Qt-Dokumentation heißt es, dass -platform
dies die Host-Computer-Architektur (auf der Sie kompilieren) und -xplatform
die Zielplattform sein sollte, für die Sie die Bereitstellung durchführen möchten. In meinem Fall, habe ich -platform linux-g++-64
und -xplatform linux-win32-g++
wo Linux-win32-g ++ ist mein modifizierte win32-g ++ Konfiguration.
Mein Problem ist, dass nach dem Ausführen von configure mit diesen Optionen der Compiler meines Systems anstelle des Cross-Compilers (x86_64-w64-mingw32-gcc) aufgerufen wird. Wenn ich die -xplatform
Option weglasse und -platform
auf meine Zielspezifikation (linux-win32-g ++) setze , wird der Cross-Compiler aufgerufen, aber Fehler, wenn einige Unix-bezogene Funktionen gefunden werden, sind nicht definiert.
Hier sind einige Ergebnisse meines letzten Versuchs: http://pastebin.com/QCpKSNev .
Fragen:
Sollte der native Compiler jemals aufgerufen werden , wenn so etwas wie Qt für Windows von einem Linux-Host übergreifend kompiliert wird ? Das heißt, sollten wir während eines Cross-Compilation-Prozesses nicht nur den Cross-Compiler verwenden? Ich verstehe nicht, warum das Konfigurationsskript von Qt versucht, den nativen Compiler meines Systems aufzurufen, wenn ich die
-xplatform
Option spezifiziere .Wenn ich einen MingW-Cross-Compiler verwende, wann muss ich mich mit einer Spezifikationsdatei befassen? Spezifikationsdateien für GCC sind für mich immer noch ein Rätsel, daher frage ich mich, ob mir hier Hintergrundinformationen helfen werden.
Was muss ich im Allgemeinen außer der Angabe eines Cross-Compilers in meiner qmake.conf noch beachten?