Qual é a diferença entre os arquivos de configuração *.pro
e *.pri
do qmake?
O que deve ir em um arquivo * .pro e o que deve ir em um arquivo * .pri?
Um .pro
arquivo é onde você executaria o QMake. Um .pri
arquivo é incluído por um .pro
arquivo. Fora isso, não há muita diferença entre os dois.
O uso de exemplo pode ser se você tiver diferentes compilações que precisam de opções diferentes. Você pode colocar informações compartilhadas no .pro, enquanto adia as opções para vários arquivos .pri. Um pouco mais de informação, embora reconhecidamente não muito mais, pode ser encontrada aqui .
Há uma diferença principal entre sua reutilização direcionada:
Isso geralmente é chamado de arquivo de projeto .
Geralmente é chamado de Arquivo de inclusão de projeto .
Como você pode ver em seus nomes, a principal diferença é que os .pri
arquivos devem ser incluídos. Isso é semelhante a incluir módulos em linguagem de programação para compartilhar a funcionalidade, essencialmente.
Você será capaz de gravar as configurações comuns e o código nesses .pri
arquivos e incluí-los de vários .pro
arquivos conforme a necessidade. É assim que você o usaria na prática:
FOO = BAR
...
include($$PWD/foo.pri)
...
...
include($$PWD/foo.pri)
...
Dessa forma, a comunalidade estaria disponível tanto em hello.pro
como em world.pro
. Não faz muita diferença neste cenário, mas quando a funcionalidade compartilhada ficar mais longa, você economizará um pouco de escrita, sincronização, correção de bugs e assim por diante.
Você pode até incluir um .pri
arquivo dentro de outro .pri
arquivo, se desejar. Você também pode incluir .pri
arquivos em diferentes subprojetos, etc. É muito bom.
A sintaxe é a mesma, entretanto, para os arquivos .pro
e .pri
. No final, você executaria o qmake nos .pro
arquivos, e isso também é o que o qmake gera para você se você não tiver um arquivo de projeto existente e pretende usar qmake -project
.
Você pode ler mais sobre a função de inclusão aqui :
incluir (nome do arquivo)
Inclui o conteúdo do arquivo especificado por nome do arquivo no projeto atual no ponto em que é incluído. Esta função é bem-sucedida se o nome do arquivo for incluído; caso contrário, ele falha. O arquivo incluído é processado imediatamente.
Você pode verificar se o arquivo foi incluído usando esta função como condição para um escopo.
Apenas para ser completa, há também .prf
Projeto recurso Arquivos e .prl
Projeto Linker arquivos , mas como um usuário final, você não precisa lidar com isso por enquanto.
O formato dos .pri
arquivos é exatamente igual ao formato dos .pro
arquivos. A principal diferença é a intenção; Um .pro é o que a maioria das pessoas esperaria para executar o qmake diretamente, enquanto um .pri deve ser incluído por um .pro. Quando você instrui o qmake a incluir outro arquivo, ele apenas processa os comandos naquele arquivo como se estivessem no arquivo atual.
Para referência: * .pro vs * .pri