Qt Pro、Pri、Prf

一、概述

1、在Qt中,通常使用.pro(project)、pri(private include)、prf(project file)三种文件扩展名来组织项目。对于模块化编程,Qt提供了Pro和Pri,Pro管理项目,Pri管理模块

2、pro文件是Qt项目的核心文件,包含了项目的所有编译信息,用于定义项目的源代码、包含路径、编译器选型、链接库等等。一个pro文件就是一个Qt项目,构建这个项目只需要执行qmake和make命令即可。

3、pri文件通常位于源码树的不同目录中,用于存放各个目录所需的私有头文件、源文件或其它资源。pri文件可以被其他的pro或pri文件所包含。通过实现各个目录的私有信息,pri文件提高了模块化的能力,而且可以防止重复的编写。

4、prf文件是一个用户定义的配置文件,也可以被包含在pro或pri文件中。通常情况下,prf文件用于设置不同平台和编译器的特定选项,或者为Qt的mkspecs提供额外的功能支持。

5、总结:pro用于描述项目的整体而pri用于描述项目中各个私有模块prf则用于定义一些通用的编译器选项和配置,可以使Qt的构建更加灵活

二、配置项说明

1、模板变量告诉QMAKE为应用程序生成哪一种MAKEFILE

下面是可供使用的选择:

TEMPLATE = app

app:建立一个应用程序的makefile,这个是默认值,若模块项未指定,将默认使用此项;

lib:建立一个库的makefile;

vcapp:建立一个应用程序的VisualStudio项目文件;

vclib:建立一个库的VisualStudio项目文件;

subdirs:这是一个特殊的模板,可以创建一个可进入特定目录并为一个项目文件生成makefile,此makfile可以调用make;

2、TARGET = :这个配置项用来指定最后生成的目标应用程序的名称

3、CONFIG += : 用来告诉qmake关于应用程序的配置信息,使用+=表示在现有的配置上添加,这样会更安全。比如,CONFIG += qt warn_on

4、UIC_DIR += :用来指定uic命令,将.ui文件转化为ui_*.h文件存放的目录

5、RCC_DIR += :用来指定rcc命令,将.qrc文件转换成qrc_*.h文件存放的目录

6、MOC_DIR += :用来指定moc命令,将含有Q_OBJECT的头文件转换成标准.h文件存放的目录

7、OBJECTS_DIR += :用来指定目标文件obj的存放目录

8、DEPENDPATH += : 用来指定工程的依赖路径应用程序所依赖的搜索路径。

 DEPENDPATH += $$PWD/xBus/include

9、INCLUDEPATH += : 用来指定工程所需要的头文件

   INCLUDEPATH += $$PWD/xBus/include

10、LIBS += :用来指定引入的lib文件的路径,一般会在前面加下参数-L

 win32:CONFIG(release, debug|release): LIBS += -L$$PWD/xBus/lib/release/ -lXBUS_L1else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/xBus/lib/debug/ -lXBUS_L1else:unix: LIBS += -L$$PWD/xBus/lib/ -lXBUS_L1

11、DEFINES += : 用来定义编译选项。

DEFINES += QT_DEPRECATED_WARNINGS

12、DESTDIR += :用来指定目标的生成路径, 放置可执行程序的目录

BIN_DIR     = $$PWD/../bin/debug
DESTDIR = $$BIN_DIR

13、TRANSLATIONS += zh_CN.ts: 翻译文件

14、message($$PWD):当前pro文件所在路径

15、message($${OUT_PWD}):makefile输出路径

16、message($$_PRO_FILE_PWD_):pro文件所在路径(注意:即使它在pri文件内,也是指代的包含它的pro所在的路径)

17、message($$_PRO_FILE_):pro的全路径

18、RC_ICONS = :应用程序图标(后缀.ico)

RC_ICONS = icon.ico

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/15990.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2.11寒假作业

web:[SWPUCTF 2022 新生赛]js_sign 打开环境是这样的,随便输入进行看看 提示错误,看源码其中的js代码 这个代码很容易理解,要让输入的内容等于对应的字符串,显然直接复制粘贴是错的 这串字符看起来像是base64加密&…

innovus如何分步长func和dft时钟

在Innovus工具中,分步处理功能时钟(func clock)和DFT时钟(如扫描测试时钟)需要结合设计模式(Function Mode和DFT Mode)进行约束定义、时钟树综合(CTS)和时序分析。跟随分…

《DeepSeek技术应用与赋能运营商办公提效案例实操落地课程》

大模型算法实战专家—周红伟老师 法国科学院数据算法博士/曾任阿里巴巴人工智能专家/曾任马上消费企业风控负责人 课程背景 随着大模型技术的迅猛发展,企业面临着提升工作效率、降低运营成本和优化资源配置的巨大压力。DeepSeek做出十三项革命性的大模型技术突破…

大模型基本原理(二)——ChatGPT的工作原理

如何得到一个ChatGPT? 1、无监督预训练:通过大量的文本数据集进行无监督训练,得到一个基座模型(只会续写文本) 2、监督微调:通过一些人类撰写的高质量对话数据对基座模型进行监督微调,得到一个…

示例代码:C# MQTTS双向认证(客户端)(服务器EMQX)

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…

mosquitto配置桥接

同一终端中两个broker,其中一个做桥将1883端口的消息导出到1884: mosq.conf 多个服务器搭建mosquitto集群: mosquitto配置桥接_mosquitto 桥接-CSDN博客

通过Chatbox和API实现本地使用DeepSeek(R1满血版)

1、注册用户,申请API DeepSeek满血版api注册链接(注册即送2000万Token) 1.1 注册:https://cloud.siliconflow.cn/i/yl6uVodF 1.2 注册完成之后,申请API密钥 2、下载Chatbox 2.1 下载安装包:https://cha…

[学习笔记] Kotlin Compose-Multiplatform

Compose-Multiplatform 原文:https://github.com/zimoyin/StudyNotes-master/blob/master/compose-multiplatform/compose.md Compose Multiplatform 是 JetBrains 为桌面平台(macOS,Linux,Windows)和Web编写Kotlin UI…

【deepseek-r1本地部署】

首先需要安装ollama,之前已经安装过了,这里不展示细节 在cmd中输入官网安装命令:ollama run deepseek-r1:32b,开始下载 出现success后,下载完成 接下来就可以使用了,不过是用cmd来运行使用 可以安装UI可视化界面&a…

(篇六)基于PyDracula搭建一个深度学习的软件之新版本ultralytics-8.3.28调试

ultralytics-8.3.28版本debug记录 1传入文件 代码太多不粘贴在这里了,完整代码写在了篇三 def open_src_file(self):config_file config/fold.jsonconfig json.load(open(config_file, r, encodingutf-8))open_fold config[open_fold]if not os.path.exists(op…

寒假2.8

题解 web:[RoarCTF 2019]Easy Calc 打开,是一个计算界面 看一下源代码,提示设置了WAF,并且有一个calc.php文件 访问一下calc.php文件,得到源码,使用get方式传参赋值给num,设置了黑名单&#x…

pytest测试专题 - 1.2 如何获得美观的测试报告

<< 返回目录 1 pytest测试专题 - 1.2 如何获得美观的测试报告 1.1 背景 虽然pytest命令的报文很详细&#xff0c;用例在执行调试时还算比较方便阅读和提取失败信息&#xff0c; 但对于大量测试用例运行时&#xff0c;可能会存在以下不足 报文被冲掉测试日志没法归档 …

让office集成deepseek,支持office和WPS办公软件!(体验感受)

导读 AIGC:AIGC是一种新的人工智能技术&#xff0c;它的全称是Artificial Intelligence Generative Content&#xff0c;即人工智能生成内容。 它是一种基于机器学习和自然语言处理的技术&#xff0c;能够自动产生文本、图像、音频等多种类型的内容。这些内容可以是新闻文章、…

QML布局和信号槽

目录 一、定位器&#xff08;Positioners&#xff09; 1.Row&#xff08;行定位器&#xff09; 2.Column&#xff08;列定位器&#xff09; 3.Grid&#xff08;表格定位器&#xff09; 二、Layout布局 1.RowLayout&#xff08;行布局&#xff09; 2.ColumnLayout&#x…

C++ Primer 类型转换

欢迎阅读我的 【CPrimer】专栏 专栏简介&#xff1a;本专栏主要面向C初学者&#xff0c;解释C的一些基本概念和基础语言特性&#xff0c;涉及C标准库的用法&#xff0c;面向对象特性&#xff0c;泛型特性高级用法。通过使用标准库中定义的抽象设施&#xff0c;使你更加适应高级…

.Net使用EF Core框架如何连接Oracle

目录 一、Nutget包添加 二、 配置文件 三、创建实体类 四、创建数据库上下文类 五、将数据库上下文服务注册到容器 六、测试数据库数据 &#xff08;1&#xff09;编写PeopleController &#xff08;2&#xff09;编写People页面 一、Nutget包添加 一定要安装Oracle.Ma…

30~32.ppt

目录 30.导游小姚-介绍首都北京❗ 题目​ 解析 31.小张-旅游产品推广文章 题目 解析 32.小李-水的知识❗ 题目​ 解析 30.导游小姚-介绍首都北京❗ 题目 解析 新建幻灯片-从大纲-重置-检查设计→主题对话框→浏览主题&#xff1a;考生文件夹&#xff08;注意&#x…

2025 年 2 月 TIOBE 指数

2025 年 2 月 TIOBE 指数 二月头条:快,更快,最快! 现在,世界需要每秒处理越来越多的数字,而硬件的发展速度却不够快,程序的速度变得越来越重要。话虽如此,快速编程语言在 TIOBE 指数中取得进展也就不足为奇了。编程语言 C++ 最近攀升至第 2 位,Go 已稳居前 10 名,Ru…

【Flink源码分析】5. Flink1.19源码分析-异步编程(CompletableFuture)

5 CompletableFuture 实现异步编排&#xff1b;获取异步任务执行的结果。 CompletableFuture提供了几十种方法&#xff0c;辅助我们的异步任务场景。这些方法包括创建异步任务、异步任务回调、多个任务组合处理等方面。 5.1 supplyAsync 方法 supplyAsync 执行 Completable…

LabVIEW在呼吸机测试气体容量计算

在呼吸机测试中&#xff0c;精确测量气体容量变化是评估设备性能的关键步骤。通过监测呼吸机气道内的压力变化&#xff0c;并结合流阻和肺顺应性等参数&#xff0c;可以计算出单位时间内的气体容量变化。本案例基于LabVIEW实现该计算过程&#xff0c;以确保测试数据的准确性和一…