Skip to main content

Qt Static Build

Mehr
18 Jan. 2017 13:34 #19 von sascha
Qt Static Build wurde erstellt von sascha
In letzter Zeit wurden wir häufiger gefragt, wie man einen statischen Build der Qt-Bibliothek erstellen kann. Mit unserem Framework cutex hat das zwar nichts zu tun, aber ich schreibe hier nun trotzdem einmal eine kleine Anleitung dazu. Dabei kann ich natürlich nicht alle Betriebssysteme, Compiler und Qt-Versionen abdecken. Mein Beispiel hier bezieht sich auf Windows mit Qt 5.5.1 und dem MinGW-Compiler.

Wichtiger Hinweis: beim statischen Linken der Qt-Bibliothek wird normalerweise eine kommerzielle Lizenz benötigt! Weitere Informationen zu den Lizenzbestimmungen finden Sie unter folgendem Link: www.qt.io/qt-licensing-terms/ .
  1. Zum kompilieren der Bibliothek benötigen Sie zunächst eine vorhandene Qt-Installation. In meinem Beispiel habe ich Qt 5.5.1 in den Ordner "C:\Qt" installiert. Der vollständige Pfad zu den MinGW-Binaries lautet somit "C:\Qt\Tools\mingw492_32\bin" und muss in Schritt 4 entsprechend angepasst werden, falls dieser bei Ihnen abweichen sollte.

  2. Dieser Schritt ist optional: wenn Sie Qt-Quick Anwendungen erstellen möchten, benötigen Sie zum kompilieren der Bibliothek zusätzlich die Programmiersprache Python. Sie können Python unter folgender Adresse herunterladen: www.python.org/downloads/ . Ich habe die aktuelle Version von Python in den Ordner "C:\Python" installiert. Falls Sie Python nicht, bzw. in einem anderen Ordner installieren, müssen Sie die Pfadangabe in Schritt 4 entsprechend anpassen.

  3. Als nächstes benötigen Sie natürlich noch den Quellcode von Qt, welchen Sie aus dem Archiv herunterladen können: download.qt.io/archive/qt/5.5/5.5.1/single/ . Nach dem Download habe ich die Datei in den Ordner "C:\Qt-Static" entpackt. Auch hier müssen Sie wieder die Pfadangabe im nächsten Schritt anpassen, falls Sie einen anderen Ordner verwenden möchten.

  4. Zum setzen der für den Build-Vorgang benötigten Umgebungsvariablen, habe ich ein kleines Skript erstellt und unter "C:\Qt-Static\build.cmd" gespeichert:

    Code:
    SET _ROOT=C:\Qt-Static SET PATH=%_ROOT%\qtbase\bin;%_ROOT%\gnuwin32\bin;C:\Qt\Tools\mingw492_32\bin;C:\Python;%PATH% SET QMAKESPEC=win32-g++ SET _ROOT=

  5. Öffnen Sie nun die Eingabeaufforderung (cmd.exe) und geben dort nacheinander folgende Befehle ein, um den neuen Qt-Build zu konfigurieren:

    • cd C:\Qt-Static
    • build.cmd
    • configure -debug -static -opensource -opengl desktop -nomake examples

    Weitere Informationen zum Tool configure finden Sie hier: doc.qt.io/qt-5/configure-options.html . Mit den obigen Parametern wird ein statischer Debug-Build erstellt, ohne das die mitgelieferten Beispielprojekte kompiliert werden (diese würden sonst etliche Gigabyte Speicherplatz benötigen!).

  6. Wenn bisher alles geklappt hat, können Sie das Erstellen der Bibliothek mit folgender Anweisung starten:

    • mingw32-make

    Achtung: das Kompilieren von Qt dauert mehrere (in der Regel 2-3) Stunden. Stellen Sie also sicher, das der Rechner in dieser Zeit nicht in den Standby-Modus wechselt!

  7. Abschließend muss die neue Qt-Version nur noch im Qt Creator konfiguriert werden. Starten Sie dazu Qt Creator und wählen im Menü "Extras" den Menüpunkt "Einstellungen". Dort wechseln Sie zur Gruppe "Erstellung und Ausführung" und wählen zunächst den Kartenreiter "Qt Versionen" aus. Betätigen Sie dann die Schaltfläche "Hinzufügen" und geben den Pfad zu qmake.exe an, in meinem Beispiel wäre das "C:\Qt-Static\qtbase\bin\qmake.exe". Betätigen Sie dann die Schaltfläche "Anwenden", damit die Änderungen direkt übernommen werden.

    Wechseln Sie danach zu dem Kartenreiter "Kits" und betätigen dort die Schaltfläche "Hinzufügen". Geben Sie dem neuen Kit einen aussagekräftigen Namen, z.B. "Qt-Static" und wählen unter "Qt-Version" die soeben neu hinzugefügte Qt-Version aus. Damit ist die Konfiguration vollständig, übernehmen Sie die Änderungen mit einem Klick auf die Schaltfläche "OK".

Ich hoffe Sie fanden diese Anleitung nützlich und würde mich über Ihr Feedback freuen. Selbstverständlich können Sie hier auch noch weitere Fragen zum Thema stellen.

Zum Abschluss noch einige Links mit weiteren Informationen:

Bitte Anmelden oder Registrieren um der Konversation beizutreten.