MinGW-w64 Anwendung für 64 und 32 Bit erstellen

Alles rund um die Programmierung mit Qt
Antworten
cyberduck
Beiträge: 16
Registriert: 14. Juli 2010 12:07

MinGW-w64 Anwendung für 64 und 32 Bit erstellen

Beitrag von cyberduck »

Hallo,

welchen Befehl benötige ich um mit dem MinGW-w64 unter Windows 64 Bit eine 32 Bit Anwendung zu erstellen?

Code: Alles auswählen

mingw32-make -32Bit ???
Sicher muss dazu auch Qt passend Konfiguriert werden. Wie ist der entsprechende Befehl dazu?

Code: Alles auswählen

configure 32und64Bit ???
Schon mal vielen Dank fürs lesen!
Eltharion
Beiträge: 74
Registriert: 4. Mai 2006 14:42
Wohnort: Magdeburg
Kontaktdaten:

Re: MinGW-w64 Anwendung für 64 und 32 Bit erstellen

Beitrag von Eltharion »

Wenn Du Windows 64 einsetzt, dann musst Du Dich mit den ganzen Problemen des Cross-compilings eigentlich nicht rumschlagen und kannst einfach loslegen. Der einfachste Weg ist es, 2 komplette Toolchains runterzuladen. Einmal für 32 und einmal für 64 Bit-Entwicklung. Den Platz sollte man immer haben. Ansonsten könnte es ggf. passieren, dass Du unter 32 Bit für 64 Bit etwas übersetzen willst, aber der Build-Prozess auch ausführbare Dateien starten will, die gar nicht als 32 Bit vorhanden sind... naja, das merkt man dann schon...

Ich nehme bspw. im Moment diese beiden:

https://sourceforge.net/projects/mingw- ... posix/seh/
https://sourceforge.net/projects/mingw- ... six/dwarf/

Als Konsole nehme ich MSYS, aber das brauchst Du nur, wenn Du tiefer in die Materie einsteigen willst...
http://sourceforge.net/projects/mingwbu ... -packages/

Die MinGW-Downloads unterscheiden sich in der Bit-Zahl und der gcc-Version (da nimmt man natürlich den Neuesten) und vorallem im Threading-Modell und Exception-Handling. Bei der Auswahl nimmt man als Anfänger am besten die gleichen Threads/Exceptions-Optionen wie das vorkompilierte Qt (kann man mit gcc -v checken). Der Grund ist, dass man Binärdateien mit unterschiedlichen Thread/Exception-Einstellungen nicht immer zusammenlinken kann bzw. sollte. Später, wenn Du die Unterschiede kennst und auch alle Pakete selbst übersetzen kannst, ist es dann egal.

Dann kommt es darauf an, ob Du nur Deine Software kompilieren willst (in einer IDE oder am DOS-Prompt) oder ob Du selbst das ganze Qt übersetzen willst. Dann wäre es ggf. sinnvoll, MSYS zu installieren, da das das Übersetzen der benötigten Pakete von Dritten erleichtert bzw. tlw. überhaupt erst erlaubt. Wenn Du die alle erst mal selbst übersetzt hast, dann kannst Du aber auch gleich Qt unter MSYS übersetzen... Schau einfach, wie es andere machen, es sind doch recht viele Handgriffe und Patches notwendig, wenn alles klappen soll.

Für den Anfang kannst Du aber auch ein vorkompiliertes Qt irgendwo runterladen und benutzen. Ich weiss nicht, ob auf qt-project.org mittlerweile 2 Versionen angeboten werden... Achte aber darauf, dass Dein MinGW dazu passt.

Für das Übersetzen von Qt kann ich Dir keine Optionen geben. Meine sind etwas komplizierter und an MSYS angepasst:
https://sourceforge.net/p/open-egov/cod ... ons/qt.xml
Angeblich soll es auch von der Windows-Kommandozeile aus funktionieren, aber das habe ich nie probiert.


Dann brauchst Du nur noch passende Optionen beim Aufruf von Compiler und Linker - wichtig ist -m32 oder -m64:

Code: Alles auswählen

export STDCFLAGS="-pipe -Wall -O2 -mms-bitfields"

wenn 32 bit:
    export TARGETBITS="32"
    export CFLAGS_ARCHI="-march=i686 -mtune=i686"

wenn 64 bit:
    export TARGETBITS="64"
    export CFLAGS_ARCHI="-march=nocona -mtune=core2"

export CFLAGS="-m${TARGETBITS} ${CFLAGS_ARCHI} $STDCFLAGS"
export LDFLAGS="-m${TARGETBITS} -pipe"
Das -m32 bzw. -m 64 kann natürlich auch beim Aufruf des gcc direkt gegeben werden. Jeweils beim Kompilieren und dann beim Linken noch mal.

E*
cyberduck
Beiträge: 16
Registriert: 14. Juli 2010 12:07

Re: MinGW-w64 Anwendung für 64 und 32 Bit erstellen

Beitrag von cyberduck »

Hallo,

vielen dank für die hilfreiche und ausführliche Antwort!

Soweit habe ich alles verstanden. Eine Verständnis-Frage habe ich dazu aber noch: Qt muss also in einer 32 und 64 Bit-Variante mit dem entsprechenden Compiler bzw. der Toolchain erstellt werden?

Also möchte ich selbst Software in 32 oder 64 Bit kompilieren und Qt dazu entsprechende übersetzen....

Nochmals vielen Dank!
Eltharion
Beiträge: 74
Registriert: 4. Mai 2006 14:42
Wohnort: Magdeburg
Kontaktdaten:

Re: MinGW-w64 Anwendung für 64 und 32 Bit erstellen

Beitrag von Eltharion »

Hallo,

wenn Du jeweils eine 32- und eine 64-Bit-Version anbieten möchtest, dann benötigst Du entsprechende 32- und 64-Bit-Qt-Binaries. Die kann man sich auch im Internet an einigen Stellen herunterladen, nur sind die meistens älter und für immer aktuelle Dateien sollte man das Ganze selbst übersetzen. Dann hat man auch die ganzen Optionen unter Kontrolle und kann selbst bestimmen, bspw. ob Qt gegen OpenSSL oder DBUS gelinkt wird oder nicht. Wenn Du eher normale Software ohne spezielle Anforderungen schreibst, dann ist das aber noch nicht so wichtig...

Mein Rat ist, eine vertrauenswürdige Quelle zu finden, die die Qt-Binaries anbietet und erst mal damit zu arbeiten und nebenbei die Fertigkeiten zu erwerben, Qt selbst zu übersetzen.

Ich wollte eben zum Download das qtx64-Projekt auf Sourceforge empfehlen, aber die scheinen vor Kurzem den Betrieb eingestellt zu haben. Das hier schaut noch gut aus: http://tver-soft.org/qt64 aber man muss noch abwarten, ob der Anbieter das schafft, alles aktuell zu halten.

E*
Antworten