Qt: * .pro contro * .pri


88

Qual è la differenza tra i file di configurazione *.proe *.priper qmake?

Cosa dovrebbe essere contenuto in un file * .pro e cosa dovrebbe essere contenuto in un file * .pri?

Risposte:


54

Un .profile è ciò su cui eseguire QMake. Un .prifile è incluso in un .profile. A parte questo, non c'è molta differenza tra i due.

Un esempio di utilizzo potrebbe essere la presenza di build differenti che richiedono opzioni differenti. È possibile inserire le informazioni condivise nel .pro, rimandando le opzioni a vari file .pri. Un po 'più di informazioni, anche se certamente non molte di più, possono essere trovate qui .


75

C'è una differenza principale tra il loro riutilizzo mirato:

.pro

Questo di solito è chiamato file di progetto .

.pri

Questo di solito è chiamato Project Include File .

Come puoi vedere nei loro nomi, la differenza principale è che i .prifile sono pensati per includere file. Questo è simile all'inclusione di moduli nel linguaggio di programmazione per condividere la funzionalità, essenzialmente.

Sarai in grado di scrivere le impostazioni e il codice comuni in quei .prifile e includerli da diversi .profile in base alle necessità. Ecco come lo useresti in pratica:

foo.pri

FOO = BAR

hello.pro

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

world.pro

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

In questo modo, la comunanza sarebbe disponibile sia in hello.proche in world.pro. Non fa molta differenza in questo scenario, ma quando la funzionalità condivisa diventa più lunga, ti risparmierà un po 'di scrittura, nonché la sincronizzazione, la correzione dei bug e così via.

Puoi anche includere un .prifile all'interno di un altro .prifile, se lo desideri. Potresti anche includere .prifile in diversi sottoprogetti, ecc. È molto carino.

La sintassi è la stessa, tuttavia, per i file .proe .pri. Alla fine, dovresti eseguire qmake sui .profile, e questo è anche ciò che qmake genera per te se non hai un file di progetto esistente e intendi utilizzare qmake -project.

Puoi leggere di più sulla funzione include qui :

include (nome file)

Include il contenuto del file specificato da filename nel progetto corrente nel punto in cui è incluso. Questa funzione ha successo se il nome del file è incluso; altrimenti fallisce. Il file incluso viene elaborato immediatamente.

È possibile verificare se il file è stato incluso utilizzando questa funzione come condizione per un ambito.

Giusto per essere completa, ci sono anche .prf progetto Feature file e .prl di progetto linker file , ma come un utente finale, non c'è bisogno di trattare con che per ora.


16

Il formato dei .prifile è esattamente lo stesso del formato dei .profile. La differenza principale è di intenti; un .pro è ciò che la maggior parte delle persone si aspetterebbe di eseguire direttamente con qmake, mentre un .pri deve essere incluso da un .pro. Quando istruisci qmake di includere un altro file, elabora semplicemente i comandi in quel file come se fossero nel file corrente.

Per riferimento: * .pro vs * .pri


In realtà ho visto questa domanda e non ho notato che la seconda risposta risponde effettivamente alla mia domanda .. :(
Roman Byshko
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.