2016-07-14 8 views
0

Ich habe eine Anwendung, die ich mit Qt Creator unter Linux erstellt habe und jetzt bereitstellen möchte. Allerdings möchte ich es nicht statisch aufbauen, da ich nicht möchte, dass es Open-Source-basiert ist. Ich habe versucht, die ldd ./YourExecutable Befehl, aber nur die zusätzlichen Abhängigkeiten listet (und nicht hinzufügen) die die Anwendung benötigt, damit es ausgeführt wird. Meine Frage ist, wie sammle ich die notwendigen Abhängigkeiten, ohne diese Dateien einzeln suchen zu müssen? Gibt es unter Windows ein Tool wie "windeployqt.exe", das ich unter Linux für den gleichen Zweck verwenden kann? Oder gibt es einen besseren Ansatz als den, an den ich denke?Qt - Wie Anwendung dynamisch unter Linux bereitstellen?

+0

Also wollen Sie es so kompilieren, dass andere Leute es nicht lesen können, ohne es zu dekompilieren? –

+0

Ja. Unter Windows kann ich einen Ordner erstellen, die ausführbare Datei darin einfügen und alle erforderlichen Abhängigkeiten und Dateien hinzufügen, damit die ausführbare Datei funktioniert und der Ordner als Release vorliegt. Ich versuche dasselbe unter Linux zu machen. – xcyl40

+0

Würde es funktionieren, ein Werkzeug zu haben, das auf Windows installiert wird, aber kompiliert und für Linux verbindet? –

Antwort

0
  1. Erhalten Cygwin setup.exe: http://www.cygwin.com/

1,1. Führen Sie setup.exe aus und fahren Sie mit der Paketauswahlliste fort.

1.2. Wählen Sie unter Entwicklung Kategorien, die Sie zum Kompilieren Ihrer Quelle benötigen. Für Beispiel 'GNU make'.

1.3. Beenden Sie die Installation.

  1. Linux crosscompilers für Cygwin Get: "Cygwin-gcc-linux.tar.bz2" (68,2 Mb). md5sum: 340e91a346f5bb17e660db10e43005b8

    Diese Compiler werden mit Crosstool 0.28-rc37 hergestellt. Dieses Paket enthält: gcc-3.3.4 und gcc-2.95.3 für i386 (glibc 2.1.3) und gcc-3.3.3 für amd64 (glibc 2.3.2).

    Hinweis! Es gibt jetzt eine neuere Version von GCC mit glibc 2.3.2: "cygwin-gcc-3.3.6-glibc-2.3.2-linux.tar.bz2 (i386, x86_64)".

2.1. Kopieren Sie 'cygwin-gcc-linux.tar.bz2' nach 'c: \ cygwin' oder installieren Sie das Verzeichnis, das Sie in setup.exe unter ausgewählt haben.

2.2. Öffne die Cygwin-Shell und ändere das Verzeichnis mit 'cd /' in root.

2.3. Dekomprimieren zu Cygwin root mit dem Befehl: 'tar -jxvf cygwin-gcc-linux.tar.bz2'.

Cross-Compiler werden unter '/ opt/crostool' installiert. Sie können theim direkt oder mit den folgenden Befehlen verwenden: gcc-linux, g ++ - linux, gcc-linux-2.95, g ++ - linux-2.95, gcc-linux-x86_64 und g ++ - linux-x86_64.

Von: Cross-compiling on Windows for Linux Weitere Informationen here.

0

Es klingt wie Sie die gemeinsame Bibliothek Deployment-Option verwenden möchten:

http://doc.qt.io/qt-5/linux-deployment.html#creating-the-application-package

Dann, wenn Sie weiter als das gehen wollte, Sie in die Herstellung einer .rpm oder .deb aussehen könnte.

Es gibt viele Beispiele für qt-Projekte, die jetzt auf GitHub verfügbar sind und Pakete erstellt haben. Normalerweise müssen Sie für vordefinierte Binärdateien einen für x86 und einen separaten für x64 erstellen.

Hoffe, dass hilft.

Verwandte Themen