Qt: * .pro vs * .pri

85

Was ist der Unterschied zwischen *.pround *.priKonfigurationsdateien für qmake?

Was sollte in eine * .pro-Datei und was in eine * .pri-Datei gehen?

Roman Byshko
quelle

Antworten:

52

Eine .proDatei ist das, worauf Sie QMake ausführen würden. Eine .priDatei ist in einer .proDatei enthalten. Davon abgesehen gibt es keinen großen Unterschied zwischen den beiden.

Ein Beispiel für eine Verwendung könnte sein, wenn Sie unterschiedliche Builds haben, die unterschiedliche Optionen benötigen. Sie können freigegebene Informationen in die .pro-Datei einfügen und gleichzeitig die Optionen auf verschiedene PRI-Dateien verschieben. Ein bisschen mehr Informationen, obwohl zugegebenermaßen nicht viel mehr, finden Sie hier .

Bart
quelle
72

Es gibt einen Hauptunterschied zwischen ihrer gezielten Wiederverwendung:

.Profi

Dies wird normalerweise als Projektdatei bezeichnet .

.pri

Dies wird normalerweise als Project Include File bezeichnet .

Wie Sie in ihren Namen sehen können, besteht der Hauptunterschied darin, dass .priDateien Include-Dateien sein sollen. Dies ähnelt im Wesentlichen dem Einfügen von Modulen in die Programmiersprache, um die Funktionalität gemeinsam zu nutzen.

Sie können die allgemeinen Einstellungen und den Code in diese .priDateien schreiben und sie bei .proBedarf aus mehreren Dateien einfügen . So würden Sie es in der Praxis anwenden:

foo.pri

FOO = BAR

hallo.pro

...
include($$PWD/foo.pri)
...

world.pro

...
include($$PWD/foo.pri)
...

Auf diese Weise wäre die Gemeinsamkeit sowohl in hello.proals auch verfügbar world.pro. In diesem Szenario macht es keinen großen Unterschied, aber wenn die gemeinsam genutzte Funktionalität länger wird, ersparen Sie sich etwas Schreiben sowie Synchronisieren, Bugfixing und so weiter.

Wenn Sie möchten, können Sie sogar eine .priDatei in eine andere .priDatei aufnehmen. Sie können auch .priDateien in verschiedene Teilprojekte usw. aufnehmen. Es ist sehr schön.

Die Syntax ist jedoch für die .pround die .priDateien gleich. Am Ende würden Sie qmake für die .proDateien ausführen , und das generiert qmake auch für Sie, wenn keine Projektdatei vorhanden ist und Sie diese verwenden möchten qmake -project.

Weitere Informationen zur Include-Funktion finden Sie hier :

include (Dateiname)

Schließt den Inhalt der durch den Dateinamen angegebenen Datei an der Stelle in das aktuelle Projekt ein, an der sie enthalten ist. Diese Funktion ist erfolgreich, wenn der Dateiname enthalten ist. sonst schlägt es fehl. Die enthaltene Datei wird sofort verarbeitet.

Sie können überprüfen, ob die Datei enthalten war, indem Sie diese Funktion als Bedingung für einen Bereich verwenden.

Nur vollständig zu sein, gibt es auch .prf Projekt Feature - Dateien und .prl Projekt Linker - Dateien , sondern als Endbenutzer, die Sie nicht mit , dass für jetzt befassen müssen.

lpapp
quelle
16

Das Format der .priDateien entspricht genau dem Format der .proDateien. Der Hauptunterschied besteht in der Absicht; Eine .pro ist das, was die meisten Leute erwarten würden, um qmake direkt auszuführen, während eine .pri von einer .pro eingeschlossen werden soll. Wenn Sie qmake anweisen, eine andere Datei einzuschließen, werden die Befehle in dieser Datei einfach so verarbeitet, als ob sie in der aktuellen Datei wären.

Als Referenz: * .pro vs * .pri

Alphamännchen
quelle
Ich habe diese Frage tatsächlich gesehen und nicht bemerkt, dass die zweite Antwort tatsächlich meine Frage beantwortet .. :(
Roman Byshko