Ab QT, Teil III - qmake und Pro.
In diesem dritten Beitrag werden wir über QT-Utility qmake Projekt-Dateien und * sprechen. Pro. Lasst uns verstehen, was es für qmake ist und wie man verschiedene Arten von Projekten zu konfigurieren.
Die qmake
Die qmake ist ein Dienstprogramm, mit dem Qt-Framework kommt. Seine Funktion ist es, eine Projekt-Datei (*. Pro) zu analysieren und generieren ein Makefile bereits mit den Regeln des MOC , UIC und QT eingebetteten Optionen. Ohne sie, zum Beispiel, müsste explizit die moc, Dateien zu erstellen und moc_ * ausdrücklich auf die Compiler-und Linker-Optionen übergeben, um die korrekte QT unseren Projekten gehören.
Offizielle Dokumentation zu qmake und Projekt-Dateien gefunden werden kann hier .
* Project-Dateien. Pro
Um ein einfaches Projekt von der Kommandozeile aus zu erstellen, geben Sie das Projekt-Verzeichnis und folgendes eingeben:
user @ host $ qmake-project
Als das geschehen war, werden Sie eine Datei mit dem gleichen Namen wie das aktuelle Verzeichnis zu erstellen, gefolgt von der Erweiterung. Pro. Wenn bereits Dateien in diesem Verzeichnis von qmake erkannt, als Quellcode-Dateien (. H. CPP), Formen (. Ui), etc, werden sie automatisch in das Projekt-Datei hinzugefügt.
Erstellt die Datei. Pro, um qmake ohne Argumente ausführen wird es versuchen, eine Datei zu analysieren. Pro mit dem gleichen Namen wie das aktuelle Verzeichnis. Sie können sogar ein alternatives Projekt-Datei als Argument für qmake. Wenn alles geklappt hat, wurde ein Makefile erstellt, und mit einem einfach zu machen, können wir das Projekt erstellen.
Die Projektdateien sind normale Text-Dateien mit Makros und Richtlinien, die von qmake interpretiert werden, das Makefile zu erstellen. Die vollständige Liste der Optionen finden Sie in der Dokumentation zu entnehmen Online . Die häufigsten sind:
TEMPLATE: Geben Sie die Art des Projekts. Verwenden Sie "App" für ausführbare Dateien oder proramas 'lib', um Bibliotheken zu erstellen.
CONFIG: Fügen Sie mehrere Optionen für das Projekt. Unter ihnen, auf 'Debug' Debug-Informationen hinzuzufügen, 'staticlib' zusammen mit der Vorlage 'lib', die abiblioteca statische (. Es in Linux) erstellt wird.
TARGET: Der Name und Speicherort des Ziels, dh die Anwendung oder Bibliothek.
MOC_DIR: Verzeichnis wo die Dateien Absolventen sein wird moc_ *. Nützlich, um keine Belastung für die Quellcode-Verzeichnis.
OBJECTS_DIR: Ergänzend zu der vorherigen Option gibt das Verzeichnis an, wo die Dateien auf das Objekt-Code generieren wird (* O.).
IncludePath: externe Verzeichnisse, in denen Header sind in das Projekt verwendet werden, wie Kopf aus externen Bibliotheken.
DEPENDPATH: externe Quellcode Verzeichnisse, die durch das Projekt verwendet werden soll.
Header: Der Header-Dateien des Projekts (* H.).
FORMS: Interface-Dateien mit dem QtDesigner (* Ui.) Erzeugt.
Quellen: Die Dateien der Quellcode Durchführung des Projekts (* CPP.).
LIBS: externe Bibliotheken im Rahmen des Projekts verwendet. -L gibt den Pfad zu der Bibliothek, sagt e-l den Namen der Bibliothek.
QT: QT-Module hinzugefügt / gelöscht werden aus dem Projekt. Wenn Vergangenheit "QT = '(Gleichheitszeichen leer QT), QT ist kein Modul im Projekt verwendet werden.
SUBDIRS: in Verbindung mit der Vorlage 'Unterverzeichnisse' Gebrauchte gibt die Unterverzeichnisse ons qmake sollte für andere Projekt-Dateien zu suchen.
Mit diesem in der Hand können wir einfache Designs erstellen EINIGE.
Eine einfache Anwendung:
# Die erste Zeile erzeugt einen Charakter dieser Kommentar # Der Name dieser Datei ist 'app.pro' Unsere # TEMPLATE = app-Vorlage ist eine Anwendung namens TARGET = bin / # myapp.bin myapp.bin im Verzeichnis. / Bin MOC_DIR = tmp / moc # Verzeichnis für MOCs, optional OBJECTS_DIR = tmp / obj # für Objekt-Code-Verzeichnis, optional HEADERS + = MyClass.h # Header class MyClass Quellen + = main.cpp # verwenden, um Dateien zu organisieren MyClass.cpp # mehrere Zeilen.
Eine einfache Bibliothek:
# Der Name dieser Datei ist 'lib.pro' Unsere # TEMPLATE = lib Vorlage ist eine Bibliothek CONFIG + = # dll dynamisch Anruf TARGET = lib / mylib # mylib im Verzeichnis. / Lib MOC_DIR = tmp / moc # Verzeichnis für MOCs, optional OBJECTS_DIR = tmp / obj # für Objekt-Code-Verzeichnis, optional HEADERS + = MyClass.h # Header class MyClass Quellen + = MyClass.cpp #-Implementierung von class MyClass
Eine Anwendung, die eine externe Bibliothek verwendet:
# Der Name dieser Datei ist 'mixed.pro' Unsere # TEMPLATE = app-Vorlage ist eine Anwendung namens TARGET = bin / # myapp.lkd myapp.lkd im Verzeichnis. / Bin MOC_DIR = tmp / moc # Verzeichnis für MOCs, optional OBJECTS_DIR = tmp / obj # für Objekt-Code-Verzeichnis, optional IncludePath + =. # Dir wo sind die Überschriften der externen lib Quellen + = main.cpp # Implementierung der Anwendung.
Verschachtelten Verzeichnissen:
Um verschachtelte Verzeichnisse zu nutzen, brauchen wir eine Projekt-Datei im aktuellen Verzeichnis, und ein weiteres Unterverzeichnis.
In dem aktuellen Verzeichnis, verwenden Sie die Optionen aus:
TEMPLATE = subdirs SUBDIRS = [Liste der Unterverzeichnisse, um der Reihe nach aufgebaut werden]
Wenn angesichts nur den Namen des Verzeichnisses, muss er eine Projekt-Datei mit Ihrem eigenen Namen. Ist es möglich, in entando, berichtet direkt an der Liste der Unterverzeichnisse, ein Verzeichnis, das von einer Projekt-Datei mit Quaker Namen.
Der vollständige Quellcode der Beispiele in diesem Tutorial besprochen gefunden werden kann hier .
Abschließend
Die qmake ist ein einfaches und sehr leistungsfähiges Werkzeug, das erleichtert das Leben eines Menschen, um Bäume von komplexen Projekt zu verwalten hat, auch wenn das Projekt nicht verwendet QT (nur am Ende des '= QT' hinzufügen). Hinzu kommt die Tatsache, dass die Projekt-Dateien ein Syntax sehr einfach und intuitiv etwas haben. Wenn Sie feinere Anpassungen benötigen, Dokumentations- Online gibt Ihnen ein Dutzend Möglichkeiten für Spaß.
Mit oder ohne Qt Qt qmake ist immer eine gute Option für das Management von Baum zu bauen.

