web-dev-qa-db-fra.com

Qt: * .pro vs * .pri

Quelle est la différence entre *.pro et *.pri fichiers de configuration pour qmake?

Que doit contenir un fichier * .pro et que doit contenir un fichier * .pri?

76
Beginner

UNE .pro le fichier est ce sur quoi vous exécuteriez QMake. UNE .pri le fichier est inclus par un .pro fichier. À part cela, il n'y a pas beaucoup de différence entre les deux.

Un exemple d'utilisation pourrait être si vous avez différentes versions qui nécessitent différentes options. Vous pouvez mettre des informations partagées dans le .pro, tout en reportant les options à divers fichiers .pri. Un peu plus d'informations, mais certes pas beaucoup plus, peut être trouvé ici .

42
Bart

Il y a une différence principale entre leur réutilisation ciblée:

.pro

Ceci est généralement appelé Project File.

.pri

Ceci est généralement appelé Projet Inclure Fichier.

Comme vous pouvez le voir dans leurs noms, la principale différence est que .pri les fichiers sont censés être des fichiers d'inclusion. Cela revient à inclure des modules dans le langage de programmation pour partager la fonctionnalité, essentiellement.

Vous pourrez écrire les paramètres et le code communs dans ces .pri fichiers et les inclure à partir de plusieurs .pro fichiers selon les besoins. Voici comment vous l'utiliseriez dans la pratique:

foo.pri

FOO = BAR

hello.pro

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

world.pro

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

De cette façon, les points communs seraient disponibles à la fois dans hello.pro aussi bien que world.pro. Cela ne fait pas beaucoup de différence dans ce scénario, mais lorsque la fonctionnalité partagée s'allonge, cela vous fera économiser de l'écriture ainsi que la synchronisation, la correction de bogues, etc.

Vous pouvez même inclure un .pri fichier dans un autre .pri fichier si vous le souhaitez. Vous pouvez également inclure .pri fichiers dans différents sous-projets, etc. C'est très agréable.

La syntaxe est cependant la même pour les deux .pro et .pri des dossiers. À la fin, vous exécuteriez qmake sur le .pro fichiers, et c'est aussi ce que qmake génère pour vous si vous n'avez pas de fichier projet existant et que vous avez l'intention d'utiliser qmake -project.

Vous pouvez en savoir plus sur la fonction include ici :

inclure (nom de fichier)

Inclut le contenu du fichier spécifié par nom de fichier dans le projet en cours au point où il est inclus. Cette fonction réussit si le nom de fichier est inclus; sinon cela échoue. Le fichier inclus est traité immédiatement.

Vous pouvez vérifier si le fichier a été inclus en utilisant cette fonction comme condition pour une étendue.

Juste pour être complet, il y a aussi .prf Projet Fonctionnalité Fichiers et .prl Project Linker Files, mais en tant qu'utilisateur final, vous n'avez pas besoin de vous en occuper pour l'instant.

62
lpapp

Le format du .pri fichiers est exactement le même que le format de .pro des dossiers. La principale différence est d'ordre d'intention; un .pro est ce que la plupart des gens s'attendent à utiliser directement qmake, tandis qu'un .pri doit être inclus par un .pro. Lorsque vous demandez à qmake d'inclure un autre fichier, il traite simplement les commandes de ce fichier comme si elles se trouvaient dans le fichier actuel.

Pour référence: *. Pro vs * .pri

16
AlphaMale