Использование .pri файлов в Qt

Это продолжение этого вопроса Как создать подкаталог для проекта в qt-creator? где первый ответ не работал для меня.

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

Qt creator screenshot

Итак, мои вопросы:

  • Какой общий формат файлов .pri?
  • Почему вышеприведенное решение не работает?

Ответ 1

Моя догадка, глядя на ваш скриншот, заключается в том, что QtCreator не находит файлы заголовков, перечисленные в файле .pri. Если ваш .pri файл находится в другой директории, отличной от вашего .pro файла (это, как представляется, здесь), Qt ищет файлы, перечисленные в файле .pri, в том же каталоге, что и файл .pri(а не. pro file), и любой относительный путь будет разрешен из этого каталога.

Когда файл не может быть найден, QtCreator молча игнорирует его и просто не добавляет его в папку в представлении проектов. Если, например, вы использовали полный путь для line.h, circle.h и bezier.h в файле include.pri, как только вы сохраните файл, вы увидите, что они отображаются в представлении проектов. Ключевым моментом является просто выяснить, каков соответствующий относительный путь, указывающий на эти файлы относительно файла .pri.

Ответ 2

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

В прошлый раз, когда я смотрел Qt Creator, он выполнял дополнительный синтаксический анализ и распознавал, что файлы .pri были отдельными, и перечислять любые файлы заголовков/источников/ui/rc/pri из этого файла именно в качестве подкаталога, вы видите файлы include.pri, перечисленные на скриншоте этого вопроса.

Ответ 3

Извлечен из Qt 4.5: Управление проектами:

Файл .pri содержит список исходных файлов, файлов заголовков, файлов .ui и .qrc файлов в проекте.

Подробнее об этих файлах и их ОС:

  • Файл .vcproj, содержащий настройки для Windows и перечисление файлов в проекте.
  • Файл .pro, содержащий настройки Unix и/или Mac OS X.
  • Файл .pri(файл включения qmake), содержащий список файлов в проекте.

Я предлагаю вам взглянуть на ссылку.