Qt:* .pro vs * .pri

时间:2011-12-02 15:29:29

标签: qt qmake qtcore

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

什么应该进入* .pro文件以及什么应该进入* .pri文件?

3 个答案:

答案 0 :(得分:60)

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

的.pro

这通常称为项目文件

.pri

这通常称为项目包含文件

正如您在其名称中看到的,主要区别在于.pri文件是包含文件。这类似于在编程语言中包含用于共享功能的模块,基本上就是这样。

您可以将常用设置和代码编写到这些.pri文件中,并在需要时将其包含在多个.pro文件中。这就是你在实践中如何使用它:

foo.pri

FOO = BAR

hello.pro

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

world.pro

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

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

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

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

您可以阅读有关include函数in here的更多信息:

  

包括(文件名)

     

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

     

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

要完成,还有.prf 项目功能文件.prl 项目链接器文件,但作为最终用户,您暂时无需处理。

答案 1 :(得分:39)

.pro文件就是你要运行QMake的文件。 .pri文件包含.pro文件。除此之外,两者之间没有太大差别。

示例用法可能是您有不同的构建需要不同的选项。您可以将共享信息放在.pro中,同时将选项推迟到各种.pri文件。更多信息,虽然可以肯定的是,can be found here

答案 2 :(得分:15)

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

供参考:*.pro vs *.pri