Qt:*。pro与* .pri


86

qmake*.pro*.pri配置文件之间有什么区别?

* .pro文件应包含哪些内容,*。pri文件应包含哪些内容?

Answers:


53

一个.pro文件是什么,你会在运行QMAKE。一个.pri文件被列入.pro文件。除此之外,两者之间没有太大区别。

如果您有不同的构建需要不同的选择,则可能是示例用法。您可以将共享信息放在.pro中,同时将选项推迟到各种.pri文件中。在这里可以找到更多的信息,尽管公认的信息不多。


74

目标重用之间有一个主要区别:

.pro

这通常称为项目文件

.pri

通常将其称为“项目包含文件”

如您所见,它们的主要区别在于 .pri文件是包含文件。这本质上类似于在编程语言中包含模块以共享功能。

您将能够将常用设置和代码写入这些.pri文件,并.pro在需要时将其包含在多个文件中。这是您实际使用的方式:

foo.pri

FOO = BAR

你好

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

world.pro

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

这样,通用性就可以同时在hello.pro和中使用world.pro。在这种情况下,它并没有太大的区别,但是当共享功能变长时,它将为您节省一些编写以及同步,错误修复等工作。

如果愿意,您甚至可以.pri在另一个.pri文件中包含一个文件。您还可以包括.pri文件在不同的子项目中,等等。这非常好。

但是,.pro.pri文件的语法相同。最后,您将在.pro文件上运行qmake,如果您还没有项目文件并且打算使用,那么qmake也会为您生成文件qmake -project

您可以在此处阅读有关include函数的更多信息:

包括(文件名)

将文件名指定的文件内容包括在当前项目中。如果包含文件名,则此函数成功;否则失败。包含的文件将立即处理。

通过将此功能用作合并范围的条件,可以检查是否包含文件。

只是为了完整起见,还有.prf Project Feature Files.prl Project Linker Files,但是作为最终用户,您现在不需要处理这些。


16

.pri文件的格式与文件的格式完全相同.pro。主要区别是意图之一。.pro是大多数人希望直接在其上运行qmake的工具,而.pri将包含在.pro中。当您指示qmake包含另一个文件时,它将仅处理该文件中的命令,就好像它在当前文件中一样。

供参考:* .pro与* .pri


我实际上看到了这个问题,却没有注意到第二个答案实际上回答了我的问题。.
::
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.