2008-08-25 26 views
3

Ich habe ein großes Austritt aus C++ Projekt zu generieren:QMake bekommen einem richtige .app Beteiligung

  • 4 Anwendungen
  • 50+ Bibliotheken
  • 20+ Bibliotheken von Drittanbietern

Das Projekt verwendet QMake (Teil von Trolltechs Qt), um die Produktionsversion unter Linux zu erstellen, aber ich habe es beim Erstellen auf MacOS gespielt.

Ich kann auf MacOS mit QMake bauen gut, aber ich habe Probleme bei der Erstellung der endgültigen .app. Es muss alle externen Frameworks und dynamischen Bibliotheken, alle dynamischen Bibliotheken des Projekts sammeln und sicherstellen, dass die Anwendung sie findet.

Ich habe online gelesen über die Verwendung von install_name_tool, aber fragte mich, ob es einen Prozess gibt, um es zu automatisieren.

(Vielleicht ist die Antwort XCode zu verwenden, damit verbundene Frage, aber es hätte Probleme mit dem Bau uic und moc)

Dank

Antwort

3

Ich bin sicher, dass dies für Sie einige große Hilfe sein könnte :

deployqt

hoffe, das hilft!

0

Ich habe dieses Problem komplett aus dem Weg geräumt, indem ich meine Qt-App statisch auf OS X gebaut habe. Das ist aber vielleicht nicht praktisch für Sie.

2

Wir haben das gleiche Problem bei Last.fm, ich habe DeployQt angeschaut und es ist nicht viel nützlich, wenn Sie Bibliotheken von Drittanbietern haben. Am Ende habe ich ein Perl-Skript geschrieben, das ein Makefile erzeugt, mit dem man eine .app und/oder .dmg generieren kann.

ich es hier hochgeladen: http://www.methylblue.com/detritus/QMake.dmg/

es diese Pro Datei für Ihre Anwendung nutzen zu können, hinzufügen:

macx*:!macx-xcode:release { 
    system(QT=\'$$QT\' QMAKE_LIBDIR_QT=\'$$QMAKE_LIBDIR_QT\' $$ROOT_DIR/common/dist/mac/Makefile.dmg.pl $$DESTDIR $$VERSION $$LIBS > Makefile.dmg) 
    QMAKE_EXTRA_INCLUDES += Makefile.dmg 
} 

Ich bin sicher, dass es nicht alle noch tragbar ist, aber es wäre für jemand anderes gut sein zu benutzen und zu sehen, ob das so ist.

Dies ist im Grunde die erste offizielle Version dieses Codes, also senden Sie mir bitte Fehlerberichte und auch Verbesserungen. Vielen Dank.