В чем разница между *.pro
и *.pri
конфигурационными файлами QMAKE?
Что должно быть в файле * .pro, а что - в файле * .pri?
.pro
Файл , что вы бы запустить QMAKE на. .pri
Файл включен в .pro
файл. Кроме этого, между ними нет большой разницы.
Пример использования может быть, если у вас разные сборки, для которых требуются разные параметры. Вы можете поместить совместно используемую информацию в .pro, а параметры откладывать для различных файлов .pri. Немного больше информации, хотя, по общему признанию, не намного, можно найти здесь .
Есть одно главное различие между их целевым повторным использованием:
Обычно это называется файлом проекта .
Обычно это называется включенным файлом проекта .
Как вы можете видеть по их названиям, основное различие состоит в том, что .pri
файлы предназначены для включения файлов. По сути, это похоже на включение модулей в язык программирования для совместного использования функций.
Вы сможете записывать общие настройки и код в эти .pri
файлы и включать их из нескольких .pro
файлов по мере необходимости. Вот как вы могли бы использовать это на практике:
FOO = BAR
...
include($$PWD/foo.pri)
...
...
include($$PWD/foo.pri)
...
Таким образом, общность будет доступна как в hello.pro
, так и world.pro
. Это не имеет большого значения в этом сценарии, но когда общая функциональность станет длиннее, это сэкономит вам некоторые записи, а также синхронизацию, исправление ошибок и так далее.
Вы даже можете включить .pri
файл в другой .pri
файл, если хотите. Вы также можете включать .pri
файлы в разные подпроекты и т. Д. Это очень приятно.
Синтаксис такой же, однако, для обоих .pro
и .pri
файлов. В конце концов, вы должны запустить qmake для .pro
файлов, и это также то, что qmake генерирует для вас, если у вас нет файла проекта, и вы собираетесь его использовать qmake -project
.
Вы можете прочитать больше о функции include здесь :
включить (имя файла)
Включает содержимое файла, указанного в filename, в текущий проект в том месте, где оно было включено. Эта функция завершается успешно, если указано имя файла; в противном случае это не удается. Включенный файл обрабатывается немедленно.
Вы можете проверить, был ли включен файл, используя эту функцию в качестве условия для области.
Просто чтобы быть полным, есть также .prf
проект Feature Файлы и .prl
проекта Linker Файлы , но как конечный пользователь, вам не нужно иметь дело с тем, что на данный момент.
Формат .pri
файлов точно такой же, как формат .pro
файлов. Основное различие заключается в намерении; .pro - это то, на чем большинство людей ожидает запустить qmake напрямую, в то время как .pri должен быть включен в .pro. Когда вы указываете qmake включить другой файл, он просто обрабатывает команды в этом файле, как если бы он был в текущем файле.
Для справки: * .pro vs * .pri