2010-03-09 10 views
5

Bin neu in Qt Programmierung und ich möchte ein Programm entwickeln, das ich in Windows, Linux (Ubuntu) und Mac ausführen möchte.Qt-Programm auf Multi-Plattform bereitstellen, wie?

Ich habe gehört, dass Qt mutli-Plattform Anwendungsentwicklung unterstützen,

aber meine Frage ist, dass,

würde jede Qt-Bibliothek benötigen diese appilication in Ubuntu laufen, nachdem ich im Einsatz oder kompiliert ?

Antwort

0

Wenn Sie Ihre Anwendung als Pakete (deb, rpm) verteilen, können Sie für die Linux-Seite die Paketabhängigkeitsregeln verwenden. Wenn Sie diese Regeln korrekt definieren, installiert der Paketmanager die Qt-Bibliotheken, die Sie bei der Installation Ihrer Anwendung benötigen.

1

Wenn Sie auf Ubuntu bereitstellen und daher ein .deb-Paket verwenden, dann ist Ihr Job einfach, da Sie nur qt als Abhängigkeit benötigen und apt es automatisch nach Bedarf installiert.

Windows und Mac haben jedoch keine "gute" Softwareverwaltungsschicht. Sie haben also keine andere Wahl, als die erforderlichen Qt-DLLs in Ihre Binärdatei einzubinden oder eine statische zu kompilieren. Unter Windows müssen Sie nur sicherstellen, dass sich die DLLs im selben Verzeichnis wie Ihr Programm befinden. Mac erfordert jedoch einige Relinking getan werden. Dies ist ein großer Schmerz, aber zum Glück kommt Qt mit einem Tool namens macdeployqt, das dies für Sie tut.

Also meiner Erfahrung nach ist Linux die einfachste Plattform zu implementieren, gefolgt von Windows, und Mac ist ein guter letzter.

Der oben angegebene Link zum Qt-Deployment-Dokument ist ein guter Ausgangspunkt. Wenn Sie ein Beispiel benötigen, habe ich ein paar Skripte geschrieben, um die Windows-Binärdateien eines Programms von mir zu erstellen. Sie können sich diese ansehen, um loszulegen.

Windows-Installer:
http://gitorious.org/tagaini-jisho/tagaini-jisho/blobs/master/pack/win32-cross/buildwin32releases.sh
http://gitorious.org/tagaini-jisho/tagaini-jisho/blobs/master/pack/win32-cross/tagainijisho.nsi

+0

Eine leichte zusätzliche Falten auf Fenster ist, dass die DLL müssen in der Regel mit dem gleichen Compiler wie Ihre Anwendung kompiliert werden, so dass Sie wahrscheinlich Ihre eigenen Kopien verteilen möchten. –

+0

für Mac, benötigen Sie kompilieren auf einem MAC-Rechner? Was ist, wenn Sie auf dem Windows-Entwicklungscomputer sind und auf dem Mac bereitstellen möchten? – KJW

Verwandte Themen