【发布时间】:2012-01-11 14:50:06
【问题描述】:
qmake 的*.pro 和*.pri 配置文件有什么区别?
什么应该进入 *.pro 文件,什么应该进入 *.pri 文件?
【问题讨论】:
qmake 的*.pro 和*.pri 配置文件有什么区别?
什么应该进入 *.pro 文件,什么应该进入 *.pri 文件?
【问题讨论】:
它们的目标重用之间有一个主要区别:
这通常称为项目文件。
这通常称为项目包含文件。
正如您在它们的名称中看到的,主要区别在于 .pri 文件是包含文件。本质上,这类似于在编程语言中包含模块以共享功能。
您将能够将通用设置和代码写入那些.pri 文件,并在需要时将它们从多个.pro 文件中包含进来。这就是您在实践中使用它的方式:
FOO = BAR
...
include($$PWD/foo.pri)
...
...
include($$PWD/foo.pri)
...
这样,hello.pro 和 world.pro 都可以使用共同点。在这种情况下并没有太大的区别,但是当共享功能变得更长时,它将为您节省一些写作以及同步、错误修复等。
如果您愿意,您甚至可以在另一个 .pri 文件中包含一个 .pri 文件。您还可以在不同的子项目中包含.pri 文件等。非常好。
不过,.pro 和 .pri 文件的语法相同。最后,您将在 .pro 文件上运行 qmake,如果您不存在项目文件并且您打算使用 qmake -project,这也是 qmake 为您生成的内容。
你可以阅读更多关于包含函数in here:
包括(文件名)
将文件名指定的文件的内容包含到当前项目中的位置。如果包含文件名,则此函数成功;否则失败。立即处理包含的文件。
您可以使用此函数作为范围的条件来检查文件是否被包含。
为了完整,还有.prf Project Feature Files 和.prl Project Linker Files em>,但作为最终用户,你现在不需要处理这个问题。
【讨论】:
.pro 文件是您运行 QMake 的对象。 .pri 文件包含在 .pro 文件中。除此之外,两者并没有太大的区别。
示例用法可能是如果您有不同的构建需要不同的选项。您可以将共享信息放在 .pro 中,同时将选项推迟到各种 .pri 文件中。更多信息,尽管承认不多,can be found here。
【讨论】:
.pri 文件的格式与.pro 文件的格式完全相同。主要区别在于意图之一; .pro 是大多数人期望直接在其上运行 qmake 的,而 .pri 将包含在 .pro 中。当您指示 qmake 包含另一个文件时,它只会处理该文件中的命令,就好像它在当前文件中一样。
供参考:*.pro vs *.pri
【讨论】: