English Malay Spanish German Französisch
Einziehen von pro-Dateien in pro-Dateien
QMake’s Projektdateien müssen manchmal das Feature von includes benutzen. Es ist ein großartiges Tool, aber es gibt ein paar Tricks, die man wissen sollte:
Als erstes eine Definition: pro-Dateien, die zum inkludieren gemacht sindwerden üblicherweise *.pro genannt, schon alleine um zu zeigen, das sie für das Inkludieren sind. Das bedeutet auch, das qmake sie nicht findet, sondern die pro Dateien benutzt (als Einstiegspunkt).
In pro Dateien gibt es 2 wichtige Variablen: INCLUDEPATH und DEPENDPATH. Die erste wird an den C++ compiler für die Verwendung bei #include statements weitergegeben, während die 2. von qmake verwendet wird, um Buildreihenfolgen festzustellen.
Um einen wirklich frei verschiebbar5en Sourcebaum zu erstellen, müssen die pri-Dateien diese Variablen entsprechend anpassen. Der Trick ist, aus das aktuelle (working) Verzeichnis zu bauen. Das findet amn mittels $$system(pwd) (sorry, aber Unix/Linux only).
Wenn diese Pfade richtig gesetzt sind, müssen nur noch die SOURCES, HEADERS, RESOURCES und FORMS variablen gefüllt werden.
Zusammenfassend ein kleines Beispiel:
- INCLUDEPATH += $$system(pwd)/include
- DEPENDSPATH += $$system(pwd)
- SOURCES += src/foo.cpp
- HEADERS += include/foo.h
- FORMS += forms/foo.ui
- RESOURCES += foo.qrc
Abschließend muss in der pro-Datei noch die pri-Datein inkludiert werden:
- ...
- include(support/foo/foo.pri)
- ...
Warnungen
Diese Lösung ist zu clever für die Übersetzung. Um lrelease und lupdate zu Benutzen muss man weniger dynamische püro/pri Dateien verwenden oder einen Weg finden, oder pro Dateinen speziell für die Übersetzung bauen.

