2009-12-19 5 views
9

Wie kann ich meine Anwendung auf Qt kompilieren. Wie für jedes ProjektWie kompilieren qt-Anwendung für verschiedene Plattformen

Ich brauche zwei Version

1). Welche läuft auf dem Computer auf Qvfb & i386 Architektur

2). Welche läuft auf Gerät mit Linux Framebuffer & ARM Architektur

Ich habe bereits Qt für Gerät sowie für Qvfb kompiliert. Ich kann Beispiele auf beiden Plattformen ausführen, aber wie kann ich meine Anwendungen cross-compilieren. Ich würde es vorziehen, dass beide Ausgaben in verschiedenen Verzeichnissen bleiben, dh die Ausgabe von i386 bleibt in der Ausgabe-i386-Plattform und die Ausgabe von ARM bleibt im Ausgabe-ARM-Verzeichnis.

Ich verwende Qt 4.6 für Embedded Linux.

Antwort

2

Qt übernimmt alle plattformspezifischen Details aus der mkspec-Datei.

Geben Sie die mkspec-Datei für qmake an, um die Kreuzkompilierung mithilfe des Befehls -spec-Befehlszeilenarguments von qmake durchzuführen.

in mkspec Datei gibt es viele definiert, mit denen Sie anpassen können für verschiedene Plattformen kompilieren, wie ich DESTDIR verwenden kann endgültige Ausgabedatei zu bestimmtem Verzeichnis zu senden, OBJECTS_DIR Objekte zu bestimmten Verzeichnis-Datei zu senden. MOC_DIR zum Senden von moc-generierten Dateien an bestimmte Verzeichnisse, UI_DIR an uic generierte Header und cpp-Dateien an ein bestimmtes Verzeichnis.

2

Das Ende von this article zeigt Ihnen, wie Sie qmake in einem Arbeitsverzeichnis ändern (Sie müssen zuerst make destclean ausführen). Dieser andere Artikel beschreibt die grundlegende Qt for embedded Linux Umgebung, nur um Ihnen das große Bild zu geben.

4

Sie können einfach DESTDIR in Ihre .pro Datei setzen. Siehe the qmake variable reference. Eventuell möchten Sie auch die Variablen OBJECTS_DIR, UI_DIR, MOC_DIR und RCC_DIR anpassen.

+0

Verändern Sie definitiv auch die anderen Verzeichnisse. Andernfalls könnten Sie versuchen, Objekte, die für eine Plattform erstellt wurden, in eine ausführbare Datei für die andere zu verknüpfen. –