qmake、pro文件、pri文件和makefile文件的功能及它们之间的关系

本文介绍了qmake工具及其生成的pro文件、pri文件的作用,同时解析了makefile文件的不同版本及其自动化编译的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

qmake、pro文件、pri文件和makefile文件的功能及它们之间的关系

提到Pro文件和Pri文件,要先提到qmake工具。


在进行Qt开发时,qmake工具是与Qt一起提供的,用来编译Qt本身,并生成Qt自带的工具和例子。

在开发Qt的过程中,qmake生成的工程文件(pro文件)用于编译应用程序和插件,可以说qmake的主要目的是生成pro文件的makefile。


下面是makefile的几个版本的功能描述:

version 1:一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作。makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。

version 2: makefile文件描述了源程序之间的相互关系,并自动维护编译工作。makefile文件是按照某种语法进行编写的,文件中说明了如何编译各个源文件并连接生成可执行文件,并定义了源文件之间的依赖关系。makefile文件是许多编译器,包括 Windows NT下的编译器,维护编译信息的常用方法,只是在集成开发环境中,用户通过友好的界面修改 makefile 文件而已。

version 3:makefile带来的好处就是“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。可见,makefile都成为了一种在工程方面的编译方法。

version 4:在 UNIX 系统中,习惯使用 Makefile 作为 makefile 文件。如果要使用其他文件作为 makefile,则可利用make命令选项指定 makefile文件


pri文件跟pro文件没有本质区别,都是起到包含路径等作用,区别在于pro文件是主要文件,pri是附属文件。下面是解释:

       如果有几个工程文件需要共享相同的项,则可以把相同的项提取到单独的文件中,在各自的pro文件中使用include()语句包含它们。通常,打算被别的工程文件包含的(工程)文件以pri(工程包含project include的意思)作为扩展名。


参考:

1.《C++ GUI Qt 4编程(第二版)》

2. Makefile百科



文档信息



### 正确添加使用 PRI 文件的方法 在 Qt 项目中,`PRI` 文件是一种用于模块化的配置文件,可以将 `.pro` 文件的内容拆分到不同的部分以便于管理维护。以下是关于如何正确引入使用 `PRI` 文件的具体方法: #### 创建 PRI 文件 为了创建一个有效的 `PRI` 文件,可以在项目的根目录或其他合适的位置新建一个文本文件,并将其扩展名更改为 `.pri`。例如,假设要创建名为 `myModule.pri` 的文件,则可以通过以下方式完成: 1. 新建一个普通的文本文件。 2. 将其命名为 `myModule.pri` 并保存至目标路径。 此操作完成后即可编辑该文件并定义所需的变量或设置[^3]。 #### 编辑 PRI 文件内容 `.pri` 文件通常包含一些共享的编译选项、库路径以及头文件路径等内容。下面是一个简单的例子展示可能存在的条目: ```plaintext HEADERS += $$PWD/myHeader.h SOURCES += $$PWD/mySource.cpp LIBS += -L$$PWD/lib -lMyLibrary INCLUDEPATH += $$PWD/include ``` 上述代码片段表示向当前项目添加指定的头文件、源码文件、链接库及其对应的包含路径[^4]。 #### 修改 PRO 文件以引用 PRI 文件 为了让主项目能够识别新创建的 `PRI` 文件,需更新主项目的 `.pro` 文件来加入这条指令: 通过调用 `include()` 函数实现这一点。语法如下所示: ```plaintext include(path_to_pri_file) ``` 具体实例可参照以下形式书写: ```plaintext include($$PWD/submodule/myModule.pri) // 使用相对路径定位 pri 文件 // 或者绝对路径也可以适用 include(/absolute/path/to/project/submodule/myModule.pri) ``` 这里需要注意的是 `$${PWD}` 宏代表当前工作目录(即 .pro 所处位置),这有助于构建跨平台兼容性强的应用程序[^2]。 #### 验证集成效果 当以上步骤全部执行完毕之后,重新运行 qmake 工具生成 Makefile 文件再进行编译过程验证是否成功加载了所设定的新资源项。如果一切正常的话,那么就说明已经顺利完成了整个流程! ### 总结 综上所述,在 QT 中正确添加利用 PRI 文件主要涉及三个核心环节——创建合适的 PRI 文档结构;填充必要的依赖关系描述数据;最后调整关联性的 PRO 脚本使其能自动读取这些外部辅助信息[^1]^。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东山一角

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值