Qt中pro项目文件配置介绍
Qt中,工程文件是以.pro后缀的文件,主要用以包含Qt模块,代码文件,依赖库,以及对项目的一些属性进行配置。
具体看个例子:
#这块是添加Qt模块
#.pro文件中使用#号作为注释
QT += core gui
#QT += webenginewidgets
#添加multimedia模块
QT += multimedia
#添加multimediawidgets模块
QT += multimediawidgets
#添加texttospeech
QT += texttospeech
#添加管理员权限
QMAKE_LFLAGS += /MANIFESTUAC:\"level=\'requireAdministrator\' uiAccess=\'false\'\"
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
#程序名称
TARGET = TestApp
#程序类型,应用程序/动态库
TEMPLATE = app#支持C11标准
CONFIG += c++11
#程序图标
RC_ICONS = Image\Logo.ico
#程序版本
VERSION = 1.0.0.1
#产品名称
QMAKE_TARGET_PRODUCT = "测试程序"
#版权所有
QMAKE_TARGET_COPYRIGHT = "牵牛老人"
#文件说明
QMAKE_TARGET_DESCRIPTION = "这是个测试程序"#设置运行文件附带调试输出窗口
#CONFIG += console#禁用qdebug打印输出
#DEFINES += QT_NO_DEBUG_OUTPUT#打印版本信息
message(qt version: $$QT_VERSION)
#判断当前qt版本号
QT_VERSION = $$[QT_VERSION]
QT_VERSION = $$split(QT_VERSION, ".")
QT_VER_MAJ = $$member(QT_VERSION, 0)
QT_VER_MIN = $$member(QT_VERSION, 1)
#下面是表示 Qt5.5及以上版本
greaterThan(QT_VER_MAJ, 4) {
greaterThan(QT_VER_MIN, 4) {
#自己根据需要做一些处理
}}
#QT_ARCH是Qt5新增的,在Qt4上没效果
#打印当前Qt构建套件的信息
message($$QT_ARCH)
#表示arm平台构建套件
contains(QT_ARCH, arm) {}
#指定编译生成的文件到temp
#表示32位的构建套件
contains(QT_ARCH, i386) {}
#表示64位的构建套件
contains(QT_ARCH, x86_64) {}
#其实Qt内置了主版本号和子版本号变量
#判断当前qt版本号
message($$QT_ARCH : $$QT_VERSION -> $$QT_MAJOR_VERSION . $$QT_MINOR_VERSION)
#下面的含义是如果版本 < 4.8
lessThan(QT_MAJOR_VERSION, 5) {
lessThan(QT_MINOR_VERSION, 8) {
#这里放要做的处理
}}
#下面的含义是如果版本 < 5.12.0
REQ_QT_MAJOR = 5
REQ_QT_MINOR = 12
REQ_QT_PATCH = 0
lessThan(QT_MAJOR_VERSION, $$REQ_QT_MAJOR)|lessThan(QT_MINOR_VERSION,
$$REQ_QT_MINOR)|lessThan(QT_MINOR_VERSION, $$REQ_QT_PATCH) {
#这里放要做的处理
}
#下面的含义是如果版本 >= 5.5
greaterThan(QT_MAJOR_VERSION, 4) {
greaterThan(QT_MINOR_VERSION, 4) {
#这里放要做的处理
}}
//代码中判断版本不要太简单
#if (QT_VERSION >= QT_VERSION_CHECK(6,0,0))
//这里放要做的处理
#endif#目录 分门别类存储
#MOC_DIR = temp/moc
#RCC_DIR = temp/rcc
#UI_DIR = temp/ui
#OBJECTS_DIR = temp/obj#作用域和 if 语句很像,如果某个条件为真,作用域中的设置就会被处理
win32:CONFIG(release, debug|release): DESTDIR += ../bin/release
else:win32:CONFIG(debug, debug|release): DESTDIR += ../bin/debug
else:unix:!macx: DESTDIR += ../bin/linux# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
#源文件
SOURCES += \httpctrl.cpp \main.cpp \mainwindow.cpp \
#头文件
HEADERS += \httpctrl.h \infoctrl.h \keyctrl.h \mainwindow.h \
#UI文件
FORMS += \mainwindow.ui# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target########加载第三方库###########
INCLUDEPATH += $$PWD/../Common/include
DEPENDPATH += $$PWD/../Common/libs/Win32/Release/
LIBS += -L$$PWD/../Common/libs/Win32/release/ -lHttpClient#资源文件
RESOURCES += \CertApply.qrc
通过上面的例子解释,可以看到一些常见的宏的说明和使用方法,下面汇总以下一些主要的宏说明:
$$PWD:表示当前目录的绝对路径。$$OUT_PWD:表示构建目录的绝对路径。$$QT_ARCH:表示目标计算机的架构。$$QT_EDITION:表示Qt的版本,
例如:"OpenSource"或"Commercial"。$$QT_HOST_DATA:表示主机的一些数据。$$QT_HOST_BINS:表示Qt主机二进制文件的路径。$$QT_HOST_LIBS:表示Qt主机库的路径。$$QT_TARGET_DATA:表示目标的一些数据。$$QT_TARGET_BINS:表示Qt目标二进制文件的路径。$$QT_TARGET_LIBS:表示Qt目标库的路径。$$join():用于连接列表中的字符串。$$split():用于分割字符串。$$system():用于执行系统命令并返回结果。$$find():用于查找指定的文件或目录。$$find_file():用于查找指定的文件。$$find_path():用于查找指定的目录。$$replace():用于替换字符串。$$eval():用于重新评估一个变量。$$uniqued():用于去除列表中的重复项。$$add_xflag():用于添加编译器标志。$$bundle_data_path():用于查找应用程序包的数据路径。$$version_compare():用于比较版本号。$$contains():用于检查列表中是否包含某个值。$$subdirs():用于指定子目录。$$CONFIG:表示构建配置。$$LIBS:表示库文件。$$INCLUDEPATH:表示包含的路径。$$DEPENDPATH:表示依赖的路径。$$VPATH:表示虚拟路径。$$DLLDESTDIR:表示动态链接库的目的地目录。$$PLUGINDESTDIR:表示插件的目的地目录。$$DATADESTDIR:表示数据的目的地目录。$$IMPATH:表示导入路径。$$QT:表示Qt模块。$$TARGET:表示目标名称。$$TEMPLATE:表示应用程序模板。$$DESTDIR:表示目的地目录。$$OBJECTS_DIR:表示对象目录。$$PWD:表示当前目录。$$CONFIG:表示构建配置。$$QMAKE_POST:表示qmake的post路径。$$QMAKE_PRE:表示qmake的pre路径。$$QMAKE_INCDIR_QT:表示Qt头文件的路径。$$QMAKE_LIBDIR_QT:表示Qt库文件的路径。$$QMAKE_INCDIR_OPENGL:表示OpenGL头文件的
相关文章:
Qt中pro项目文件配置介绍
Qt中,工程文件是以.pro后缀的文件,主要用以包含Qt模块,代码文件,依赖库,以及对项目的一些属性进行配置。 具体看个例子: #这块是添加Qt模块 #.pro文件中使用#号作为注释 QT core gui #QT webengine…...
相亲交友中的用户画像构建方法探讨
随着互联网技术的发展,相亲交友平台成为现代人寻找伴侣的重要渠道之一。在这一过程中,如何精准地为用户推荐合适的对象成为了平台能否成功的关键。本文旨在探讨相亲交友平台中用户画像的构建方法,并分析其对于提高匹配度的重要性(…...
总结
本来想把这个写完再写总结的,但是我发现卡了,明天去问问别人。 今天写上传个文件,没上传好,找到问题了,但是还不知道怎么改,我发给前端成功了,刚刚看了下好像是这里的问题,但是不是…...
C# 开发教程-入门基础
1.C# 简介、环境,程序结构 2.C# 基本语法,变量,控制局域,数据类型,类型转换 3.C# 数组、 循环,Linq 4.C# 类,封装,方法 5.C# 枚举、字符串 6.C# 面相对象,继承࿰…...
Windows上,使用远程桌面连接Ubuntu
要在 Ubuntu 上设置公网 IP 并通过 Windows 远程桌面连接到 Ubuntu,你需要完成以下步骤: 设置 Ubuntu 公网 IP: 确保你的 Ubuntu 服务器已经配置了一个公网 IP 地址。 你可以通过云服务提供商(如 AWS、Azure、Google Cloud&#…...
SharePoint Online 计划 1 部署方案
概述 SharePoint Online 是 Microsoft 365 的一部分,为组织提供了一种高效、灵活的协作平台。SharePoint Online 计划 1(Plan 1)尤其适用于中小型企业,提供了基本的文档管理和协作功能。本文将详细介绍如何部署 SharePoint Online 计划 1,并探讨其配置、管理和最佳实践。…...
kubernetes存储之GlusterFS(GlusterFS for Kubernetes Storage)
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…...
网络安全等保培训 ppt
网络安全等级保护怎么做?...
开关磁阻电机(SRM)系统的matlab性能仿真与分析
目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 SRM的基本结构 4.2 SRM的电磁关系 4.3 SRM的输出力矩 5.完整工程文件 1.课题概述 开关磁阻电机(SRM)系统的matlab性能仿真与分析,对比平均转矩vs相电流,转矩脉动vs相电流&a…...
最新动态一致的文生视频大模型FancyVideo部署
FancyVideo是一个由360AI团队和中山大学联合开发并开源的视频生成模型。 FancyVideo的创新之处在于它能够实现帧特定的文本指导,使得生成的视频既动态又具有一致性。 FancyVideo模型通过精心设计的跨帧文本引导模块(Cross-frame Textual Guidance Modu…...
茴香豆:企业级知识问答工具实践闯关任务
基础任务 在 InternStudio 中利用 Internlm2-7b 搭建标准版茴香豆知识助手,并使用 Gradio 界面完成 2 轮问答(问题不可与教程重复,作业截图需包括 gradio 界面问题和茴香豆回答)。知识库可根据根据自己工作、学习或感兴趣的内容调…...
英飞凌 PSoC6 RT-Thread 评估板简介
概述 2023年,英飞凌(Infineon)联合 RT-Thread 发布了一款 PSoC™ 62 with CAPSENSE™ evaluation kit 开发板 (以下简称 PSoC 6 RTT 开发板),该开发套件默认内置 RT-Thread 物联网操作系统。PSoC 6 RTT 开…...
深度学习笔记(8)预训练模型
深度学习笔记(8)预训练模型 文章目录 深度学习笔记(8)预训练模型一、预训练模型构建一、微调模型,训练自己的数据1.导入数据集2.数据集处理方法3.完形填空训练 使用分词器将文本转换为模型的输入格式参数 return_tenso…...
C#事件的用法
前言 在C#中,事件(Event)可以实现当类内部发生某些特定的事情时,它可以通知其他类或对象。事件是基于委托(Delegate)的,委托是一种类型安全的函数指针,它定义了方法的类型ÿ…...
金砖软件测试赛项之Jmeter如何录制脚本!
一、简介 Apache JMeter 是一款开源的性能测试工具,用于测试各种服务的负载能力,包括Web应用、数据库、FTP服务器等。它可以模拟多种用户行为,生成负载以评估系统的性能和稳定性。 JMeter 的主要特点: 图形用户界面:…...
docker-squash镜像压缩
docker-squash 和 docker export docker load 的原理和效果有一些相似之处,但它们的工作方式和适用场景有所不同。 docker-squash docker-squash 是一个工具,它通过分析 Docker 镜像的层(layers)并将其压缩成更少的层来减小镜像…...
Vue3快速入门+axios的异步请求(基础使用)
学习Vue之前先要学习htmlcssjs的基础使用 Vue其实是js的框架 常用到的Vue指令包括vue-on,vue-for,vue-blind,vue-if&vue-show,v-modul vue的基础模板: <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8&…...
VM16安装macOS11
注意: 本文内容于 2024-09-17 12:08:24 创建,可能不会在此平台上进行更新。如果您希望查看最新版本或更多相关内容,请访问原文地址:VM16安装macOS11。感谢您的关注与支持! 使用 Vmware Workstation Pro 16 安装 macOS…...
自定义复杂AntV/G6案例
一、效果图 二、源码 /** * * Author: me * CreatDate: 2024-08-22 * * Description: 复杂G6案例 * */ <template><div class"moreG6-wapper"><div id"graphContainer" ref"graphRef" class"graph-content"></d…...
Golang | Leetcode Golang题解之第419题棋盘上的战舰
题目: 题解: func countBattleships(board [][]byte) (ans int) {for i, row : range board {for j, ch : range row {if ch X && !(i > 0 && board[i-1][j] X || j > 0 && board[i][j-1] X) {ans}}}return }...
地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...
第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...
C++_哈希表
本篇文章是对C学习的哈希表部分的学习分享 相信一定会对你有所帮助~ 那咱们废话不多说,直接开始吧! 一、基础概念 1. 哈希核心思想: 哈希函数的作用:通过此函数建立一个Key与存储位置之间的映射关系。理想目标:实现…...
何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡
何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡 背景 我们以建设星云智控官网来做AI编程实践,很多人以为AI已经强大到不需要程序员了,其实不是,AI更加需要程序员,普通人…...
PydanticAI快速入门示例
参考链接:https://ai.pydantic.dev/#why-use-pydanticai 示例代码 from pydantic_ai import Agent from pydantic_ai.models.openai import OpenAIModel from pydantic_ai.providers.openai import OpenAIProvider# 配置使用阿里云通义千问模型 model OpenAIMode…...
Yii2项目自动向GitLab上报Bug
Yii2 项目自动上报Bug 原理 yii2在程序报错时, 会执行指定action, 通过重写ErrorAction, 实现Bug自动提交至GitLab的issue 步骤 配置SiteController中的actions方法 public function actions(){return [error > [class > app\helpers\web\ErrorAction,],];}重写Error…...
