Qt: * .pro frente a * .pri

87

¿Cuál es la diferencia entre los archivos de configuración *.proy *.pripara qmake?

¿Qué debe ir en un archivo * .pro y qué debe ir en un archivo * .pri?

Roman Byshko
fuente

Respuestas:

53

Un .proarchivo es en lo que ejecutaría QMake. Un .priarchivo está incluido en un .proarchivo. Aparte de eso, no hay mucha diferencia entre los dos.

El uso de ejemplo podría ser si tiene diferentes compilaciones que necesitan diferentes opciones. Puede poner información compartida en el .pro, mientras pospone las opciones a varios archivos .pri. Puede encontrar un poco más de información, aunque ciertamente no mucha más, aquí .

Bart
fuente
74

Hay una diferencia principal entre su reutilización objetivo:

.Pro

Esto generalmente se llama Archivo de proyecto .

.pri

Esto generalmente se denomina Archivo de inclusión del proyecto .

Como puede ver en sus nombres, la principal diferencia es que los .priarchivos están destinados a incluir archivos. Eso es similar a incluir módulos en el lenguaje de programación para compartir la funcionalidad, esencialmente.

Podrá escribir la configuración común y el código en esos .priarchivos e incluirlos desde varios .proarchivos cuando sea necesario. Así es como lo usaría en la práctica:

foo.pri

FOO = BAR

hola.pro

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

world.pro

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

De esta manera, la comunidad estaría disponible tanto en hello.procomo en world.pro. No hace mucha diferencia en este escenario, pero cuando la funcionalidad compartida se alarga, le ahorrará algo de escritura, sincronización, corrección de errores, etc.

Incluso puede incluir un .priarchivo dentro de otro .priarchivo si lo desea. También podrías incluir .priarchivos en diferentes subproyectos, etc. Es muy agradable.

Sin embargo, la sintaxis es la misma para los archivos .proy .pri. Al final, ejecutaría qmake en los .proarchivos, y eso también es lo que genera qmake para usted si no tiene un archivo de proyecto existente y tiene la intención de usarlo qmake -project.

Puede leer más sobre la función de inclusión aquí :

incluir (nombre de archivo)

Incluye el contenido del archivo especificado por nombre de archivo en el proyecto actual en el punto donde se incluye. Esta función tiene éxito si se incluye el nombre del archivo; de lo contrario, falla. El archivo incluido se procesa inmediatamente.

Puede comprobar si el archivo se incluyó utilizando esta función como condición para un alcance.

Sólo para estar completo, hay también .prf Proyecto Característica archivos y .prl Proyecto vinculador de archivos , sino como un usuario final, que no tienen que lidiar con eso por ahora.

lpapp
fuente
16

El formato de los .priarchivos es exactamente el mismo que el formato de los .proarchivos. La principal diferencia es de intención; un .pro es lo que la mayoría de la gente espera que ejecute qmake directamente, mientras que un .pri debe ser incluido por un .pro. Cuando le indica a qmake que incluya otro archivo, simplemente procesa los comandos en ese archivo como si estuviera en el archivo actual.

Para referencia: * .pro vs * .pri

Macho alfa
fuente
De hecho, vi esta pregunta y no he notado que la segunda respuesta realmente responde a mi pregunta ... :(
Roman Byshko