Qt:*.pro 与 *.pri

问题描述 投票:0回答:3

qmake 的

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

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

qt qmake qtcore
3个回答
93
投票

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

.pro

这通常称为项目文件

.pri

这通常称为项目包含文件

正如您在名称中所看到的,主要区别在于

.pri
文件是包含文件。本质上,这类似于在编程语言中包含模块以共享功能。

您将能够将通用设置和代码写入这些

.pri
文件中,并根据需要从多个
.pro
文件中包含它们。这就是您在实践中使用它的方式:

foo.pri

FOO = BAR

你好。亲

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

世界.pro

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

这样,共性将在

hello.pro
world.pro
中都可用。在这种情况下,它没有太大区别,但是当共享功能变得更长时,它会为您节省一些编写以及同步、错误修复等工作。

如果您愿意,您甚至可以将

.pri
文件包含在另一个
.pri
文件中。您还可以在不同的子项目中包含
.pri
文件等。这非常好。

但是,

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

您可以在此处阅读有关包含功能的更多信息

包含(文件名)

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

您可以使用此函数作为作用域的条件来检查文件是否被包含。

为了完整起见,还有

.prf
Project Feature Files
.prl
Project Linker Files,但作为最终用户,您现在不需要处理它。


56
投票

A

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

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


16
投票

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

供参考:*.pro 与 *.pri

© www.soinside.com 2019 - 2024. All rights reserved.