Qt: * .pro против * .pri - PullRequest
       25

Qt: * .pro против * .pri

73 голосов
/ 02 декабря 2011

В чем разница между *.pro и *.pri файлами конфигурации для qmake?

Что должно входить в файл * .pro, а что - в файл * .pri?

Ответы [ 3 ]

61 голосов
/ 24 мая 2014

Существует одно основное различие между их целевым повторным использованием:

.pro

Обычно это называется Файл проекта .

.При

Это обычно называется Проект Включить Файл .

Как видно из их названий, основное отличие состоит в том, что .pri файлы должны быть включаемыми файлами. По сути, это похоже на включение модулей в язык программирования для совместного использования функциональности.

Вы сможете записывать общие настройки и код в эти .pri файлы и включать их из нескольких .pro файлов по мере необходимости. Вот как бы вы использовали это на практике:

foo.pri

FOO = BAR

hello.pro

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

world.pro

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

Таким образом, общность будет доступна как в hello.pro, так и в world.pro. Это не имеет большого значения в этом сценарии, но когда общая функциональность становится длиннее, она сэкономит вам немного времени на запись, а также синхронизацию, исправление ошибок и т. Д.

Вы можете даже включить файл .pri в другой файл .pri, если хотите. Вы также можете включить .pri файлы в разные подпроекты и т. Д. Это очень приятно.

Однако синтаксис одинаков для файлов .pro и .pri. В конце концов, вы запускаете qmake для файлов .pro, и это также то, что qmake генерирует для вас, если у вас нет файла проекта, и вы намереваетесь использовать qmake -project.

Подробнее о функции включения можно прочитать здесь :

включают в себя (имя файла)

Включает содержимое файла, указанного в имени файла, в текущий проект в том месте, где оно включено. Эта функция завершается успешно, если включено имя файла; в противном случае это не удается. Включенный файл обрабатывается немедленно.

Вы можете проверить, был ли файл включен, используя эту функцию в качестве условия для области.

Просто чтобы завершить, есть также .prf Проект Функция Файлы и .prl Проект Линкер Файлы , но как конечный пользователь вам пока не нужно заниматься этим.

40 голосов
/ 02 декабря 2011
Файл

A .pro - это то, на чем вы будете запускать QMake.Файл .pri включен в файл .pro.Кроме этого нет большой разницы между ними.

Пример использования может быть, если у вас разные сборки, для которых нужны разные опции.Вы можете поместить общую информацию в .pro, откладывая параметры для различных файлов .pri.Немного больше информации, хотя, по общему признанию, не намного больше, можно найти здесь .

16 голосов
/ 02 декабря 2011

Формат файлов .pri точно такой же, как и формат файлов .pro.Основным отличием является намерение;.pro - это то, что большинство людей ожидают от запуска qmake напрямую, в то время как .pro должен быть включен в .pro.Когда вы указываете qmake включить другой файл, он просто обрабатывает команды в этом файле, как если бы он был в текущем файле.

Для справки: *. Pro vs * .pri

...