Qt: * .pro contre * .pri

87

Quelle est la différence entre *.proet *.priles fichiers de configuration pour qmake?

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

Roman Byshko
la source

Réponses:

53

Un .profichier est ce sur quoi vous exécuteriez QMake. Un .prifichier est inclus dans un .profichier. À 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, bien que pas beaucoup plus, vous pouvez trouver ici .

Bart
la source
74

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

.pro

Ceci est généralement appelé fichier de projet .

.pri

Ceci est généralement appelé fichier d' inclusion de projet .

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

Vous pourrez écrire les paramètres et le code communs dans ces .prifichiers et les inclure à partir de plusieurs .profichiers en cas de besoin. Voici comment vous l'utiliseriez dans la pratique:

toto.pri

FOO = BAR

bonjour.pro

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

world.pro

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

De cette façon, les points communs seraient disponibles à la fois dans hello.proet dans world.pro. Cela ne fait pas beaucoup de différence dans ce scénario, mais lorsque la fonctionnalité partagée s'allonge, cela vous évitera d'écrire ainsi que de synchroniser, de corriger des bogues, etc.

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

La syntaxe est cependant la même pour les fichiers .proet .pri. En fin de compte, vous exécuteriez qmake sur les .profichiers, 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 d'inclusion ici :

include (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, il é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.

Pour être complet, il y a aussi du .prf projet Feature fichiers et .prl projet Linker fichiers , mais en tant qu'utilisateur final, vous n'avez pas besoin de traiter avec pour l' instant.

lpapp
la source
16

Le format des .prifichiers est exactement le même que le format des .profichiers. La principale différence est celle de l'intention; un .pro est ce sur quoi la plupart des gens s'attendent à exécuter qmake directement, 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 s'il se trouvait dans le fichier actuel.

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

Mâle alpha
la source
En fait, j'ai vu cette question et je n'ai pas remarqué que la deuxième réponse répond réellement à ma question .. :(
Roman Byshko