2016-07-05 11 views
1

Dies kann eine Frage sein, aber ich habe nicht versucht, herauszufinden, wie ich mein QT-Projekt unter Linux statisch erstellen. Ich habe versucht, was es auf http://doc.qt.io/qt-5/linux-deployment.html gesagt hat, aber ich verstehe den 1. Schritt nicht. Wenn ich auf den Speicherort meines Qt-Projekts cd und Stellen Sie ein Qt-Projekt unter Linux

cd /path/to/Qt 
./configure -static -prefix /path/to/Qt <otherparameters> 
make
ausführen, sagt es keine solche Datei oder Verzeichnis. Missverstehe ich, welche Wege ich benutzen muss? Ich möchte mein Qt-Projekt zu einer eigenständigen ausführbaren Datei machen, die nicht den Computer erfordert, auf dem sie läuft. Ich habe gelesen, dass ich die Bibliotheken dynamisch verlinke, aber ich weiß auch nicht, was ich damit anfangen soll. Die Bereitstellungsoption ist in qtcreator ausgegraut, gibt es eine Möglichkeit, dies zu verwenden? Danke

+0

Was Sie hier versuchen, ist, Ihre eigene Kopie von Qt zu bauen (wie Sie sollten, BTW). Aber '/ path/to/Qt' ist wirklich'/Pfad/zu/Qt Sources'! Stellen Sie also sicher, dass Sie den Quellcode heruntergeladen haben. –

Antwort

0

/path/to/Qt sollte der Pfad zu Qt Quellen, nicht Ihr Projekt sein. That section der Dokumentation geht es darum, Qt statisch aufzubauen, was Sie tun müssen, bevor Sie versuchen, Ihre Anwendung statisch mit Qt zu verknüpfen. Zum Beispiel geklont, wenn Sie heruntergeladen/die Quellen zu /home/jxb458/qt5, dann würden Sie /path/to/Qt mit, dass ersetzen:

cd /home/jxb458/qt5 
./configure -static -prefix /home/jxb458/qt5/qtbase 
make 
0

Statische Verknüpfung ist groß, wenn es funktioniert, aber es kann ein Versuch sein - ich habe vor allem bei der Verwendung gefunden GUI. Wie Mitch sagte, müssen Sie den Qt-Quellcode tatsächlich neu aufbauen

Ich machte einige Notizen zurück, als ich hier ziemlich statisch baute: Notes on static building (abgeleitet von vielen Quellen) sollten sie zumindest Sie in die richtige Richtung zeigen - Sie können wahrscheinlich den Teil über die Installation von Ubuntu ignorieren - die Notizen gehen von einer Neuinstallation aus.

Allerdings habe ich kürzlich auf die dynamische Verknüpfung Bereitstellung zurückgekehrt, da ich denke, dies ist eine bessere Möglichkeit, jetzt zu implementieren. Sie müssen Qt nicht auf dem Zielcomputer installieren, den Sie nur zum Erfassen der Qt-DLLs benötigen, und sie mit Ihrer Anwendung kopieren (mit ldd executable-name, die eine Liste der DLLs erstellt, die Sie benötigen - aber nehmen Sie einfach die Qt-Dateien, nicht die System/Generischen)). Für Plugins müssen Sie ein bisschen mehr tun (aber es ist ziemlich einfach). Ich habe sogar ein Bash-Skript geschrieben, um dies automatisch zu tun (ich werde es dir schicken, wenn du es brauchst), in Windows gibt es ein qt-Skript namens windeployqt (nicht sicher, warum es keine Linux-Variante gibt).

Wenn ich anfangen würde, wieder in die Bereitstellung zu schauen, würde ich für dynamische Verknüpfung gehen. Vielleicht versuchen Sie es mit einem einfachen Projekt (wie ein Hallo Welt Projekt).