Qt:* .pro和* .pri

qmake的*.pro*.priconfiguration文件有什么区别?

什么应该进入一个* .pro文件和什么应该进入* .pri文件?

.pro文件是你将运行QMake。 .pri文件包含在.pro文件中。 除此之外,两者之间没有太大的区别。

如果您有不同的版本,需要不同的选项,则可以使用示例。 您可以将共享信息放在.pro中,同时将选项推迟到各种.pri文件。 多一点的信息,虽然承认不多, 可以在这里find 。

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

的.pro

这通常称为项目文件

.pri

这通常称为项目包含文件

正如你可以看到他们的名字,主要的区别是.pri文件是包含文件。 这与在编程语言中包含模块以共享function类似。

您将能够将通用设置和代码写入这些.pri文件,并根据需要将其包含在几个.pro文件中。 这是你如何在实践中使用它:

foo.pri

 FOO = BAR 

hello.pro

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

world.pro

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

这样,在hello.proworld.pro都可以使用通用性。 它在这种情况下没有太大的区别,但是当共享function变得更长时,它会为您节省一些写入以及同步,错误修复等等。

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

但是, .pro.pri文件的语法是相同的。 最后,你可以在.pro文件上运行qmake,这也是qmake为你生成的,如果你没有一个项目文件,你打算使用qmake -project

你可以在这里阅读更多有关include函数的信息 :

包括(文件名)

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

您可以使用此函数作为范围的条件来检查文件是否包含在内。

只是要完成,也有.prf 项目function文件.prl 项目链接器文件 ,但作为最终用户,你现在不需要处理。

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

参考: * .pro和* .pri