在Qt中使用.pri文件

17

这是对此问题(如何在Qt Creator中为项目创建子目录?)的后续,第一个答案对我无效。

我通过手动将每个文件写入主要的 .pro 文件来解决它,这并不难,但我仍然想知道 - .pri 文件具体是如何工作的,以及为什么上述链接的解决方案没有添加文件夹,只有 .pri 文件,所以在 Qt Creator 中看起来像这样:

Qt creator screenshot

因此,我的问题是:

  • .pri 文件的一般格式是什么?
  • 为什么上述解决方案不起作用?

1
刚刚写了一份详细说明,讲解了 .pri.pro 文件的区别,因为还没有人提供这样的说明,只有一些简短的描述。:) - László Papp
3个回答

24

.pri文件的格式与.pro文件的格式完全相同。主要区别在于意图不同:.pro是大多数人直接运行qmake的文件,而.pri.pro文件包含的文件。当您指示qmake包含另一个文件时,它会将该文件中的命令处理为当前文件中的命令。

我上一次使用Qt Creator时,它会进行额外的解析,并识别出.pri文件是单独存在的,并将来自该文件的任何头文件/源文件/界面文件/资源文件/ pri文件列为子目录,就像在此问题的屏幕截图中看到的include.pri文件一样。


12

从你的截图来看,我的猜测是QtCreator在.pri文件中未找到列出的头文件。如果.pri文件位于与.pro文件不同的目录中(似乎是这种情况),则Qt将在.pri文件所在的目录中寻找.pri文件中列出的文件(而不是.pro文件),任何相对路径都将从该目录解析。

当找不到文件时,QtCreator会默默地忽略它,并且不会将其添加到项目视图中的文件夹中。例如,如果您在include.pri文件中使用了line.h、circle.h和bezier.h的完整路径,一旦保存文件,您将看到它们出现在项目视图中。现在的关键是确定指向这些文件的适当相对路径,相对于.pri文件来说。


这个答案不是很详细,但它解决了我的问题,谢谢。 - Karel Bílek
13
qmake会相对于包含.pro文件的目录(而不是.pri文件)来查找文件。 - Nick

0

摘自Qt 4.5:项目管理

.pri文件包含项目中的源文件、头文件、.ui文件和.qrc文件列表。

有关这些文件及其操作系统的更多信息:

  • 一个.vcproj文件,其中包含Windows特定设置并列出项目中的文件。
  • 一个.pro文件,其中包含Unix和/或Mac OS X特定设置。
  • 一个.pri文件(qmake包含文件),其中列出了项目中的文件。

我建议您查看链接。


1
.pro文件也可以包含Windows特定的设置。.vcproj文件可以从这个.pro文件中生成。 - Wim Leers
似乎链接现在已经失效了。 - Hareen Laks

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接