QT进阶---------pro项目文件中的常用命令 (第三天)
1、命令一 决定exe可执行程序的生成路径CONFIG
作用:不使用默认路径,方便移植
CONFIG(debug, debug|release) {DESTDIR = $$_PRO_FILE_PWD_/../../../debugXXXsystem
} else {DESTDIR =$$_PRO_FILE_PWD_/../../../realeaseXXXsystem
}
是用于 Qt 项目的配置管理,其中涉及到了 Qt 的构建系统中的 CONFIG 变量。这段代码的作用是根据当前的构建类型来设置 DESTDIR(目标目录)的路径。
具体来说:
CONFIG(debug, debug|release)表示如果当前构建类型是 debug 或者同时包含 debug 和 release,则执行对应的代码块。{ ... } else { ... }表示在满足条件时执行第一个代码块,否则执行第二个代码块。
因此,这段代码的意思是:
如果当前构建类型为 debug 或者同时包含 debug 和 release,则将 DESTDIR 设置为 $$_PRO_FILE_PWD_/../../../debugxxxsystem;否则将 DESTDIR 设置为 $$_PRO_FILE_PWD_/../../../releasexxxsystem。
其中 $$_PRO_FILE_PWD_ 是 Qt 的内置变量,表示项目文件的当前目录。因此,DESTDIR 将会根据不同的构建类型设置不同的路径。
debugxxxsystem是文件夹,相对路径是相对pro的文件的路径而言的。
2、命令二 添加第三方库,以添加c++的openCV库为例
#添加opencv的库
#使用$$PWD变量来创建相对路径
#$$PWD变量所创建的相对路径是相对于Qt项目文件(通常是.pro文件)
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../common/open2019qt/bin/ -lopencv_world412
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../common/open2019qt/bin/ -lopencv_world412dINCLUDEPATH += $$PWD/../../common/open2019qt/include
DEPENDPATH += $$PWD/../../common/open2019qt/include
这段代码是在Qt项目文件(.pro文件)中用于添加OpenCV库的支持。让我解释每一行的含义:
-
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../common/open2019qt/bin/ -lopencv_world412win32:CONFIG(release, debug|release): 这是一个条件语句,指定只在Windows平台下release模式或debug/release混合模式下执行。LIBS += -L$$PWD/../../common/open2019qt/bin/ -lopencv_world412: 这一行指定了链接到OpenCV库的命令。-L$$PWD/../../common/open2019qt/bin/添加了OpenCV库的路径,-lopencv_world412指定了要链接的库文件名。
-
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../common/open2019qt/bin/ -lopencv_world412delse:win32:CONFIG(debug, debug|release): 这是条件语句的另一部分,指定在Windows平台下debug模式执行。LIBS += -L$$PWD/../../common/open2019qt/bin/ -lopencv_world412d: 这一行指定了链接到OpenCV调试版本库的命令。与前一个命令类似,但使用的是带有“d”后缀的库文件(例如,opencv_world412d)。
-
INCLUDEPATH += $$PWD/../../common/open2019qt/include- 这一行将OpenCV的头文件路径添加到项目中,以便编译器可以找到并包含OpenCV的头文件。
-
DEPENDPATH += $$PWD/../../common/open2019qt/include- 这一行类似于
INCLUDEPATH,但是它指定了编译器依赖的路径,以便在项目重新构建时能够检测到头文件的更改。
- 这一行类似于
总体来说,这段代码的作用是在Qt项目中配置OpenCV库的链接和包含路径,以便项目能够使用OpenCV的功能。
3、命令三 代码通过子项目添加pri,例如添加QXlsx的库
# QXlsx code for Application Qt project
QXLSX_PARENTPATH=./QXlsx/ # current QXlsx path is . (. means curret directory)
QXLSX_HEADERPATH=./QXlsx/header/ # current QXlsx header path is ./header/
QXLSX_SOURCEPATH=./QXlsx/source/ # current QXlsx source path is ./source/
include(./QXlsx/QXlsx.pri)
这段代码是一个在Qt项目中使用 QXlsx 库的示例,其中包含了一些路径的定义和 include 命令。
-
QXLSX_PARENTPATH=./QXlsx/:指定 QXlsx 库的主目录路径为当前目录下的QXlsx文件夹。 -
QXLSX_HEADERPATH=./QXlsx/header/:指定 QXlsx 库头文件的路径为当前目录下的QXlsx/header/文件夹。 -
QXLSX_SOURCEPATH=./QXlsx/source/:指定 QXlsx 库源文件的路径为当前目录下的QXlsx/source/文件夹。 -
include(./QXlsx/QXlsx.pri):包含QXlsx.pri文件,该文件应该在./QXlsx/目录下。这个文件通常包含了配置 QXlsx 库的编译设置以及其他必要的定义。
总的来说,这段代码的目的是在 Qt 项目中引入并配置 QXlsx 库,以便在项目中使用它提供的功能。
这三种命令一般是我在项目中用的比较多的,当然还有一些其他的命令,用的比较少。
4、用的比较少的命令(简单介绍)
- #指定生成的应用程序名:
TARGET = QtDemo
- #工程中包含的头文件
HEADERS += include/painter.h
- #工程中包含的.ui设计文件
FORMS += forms/painter.ui
- #工程中包含的源文件
SOURCES += sources/main.cpp sources
- #工程中包含的资源文件
RESOURCES += qrc/painter.qrc
- greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
这条语句的含义是,如果QT_MAJOR_VERSION大于4(也就是当前使用的Qt5及更高版本)需要增加widgets模块。如果项目仅需支持Qt5,也可以直接添加“QT += widgets”一句。不过为了保持代码兼容,最好还是按照QtCreator生成的语句编写。
- #配置信息
CONFIG用来告诉qmake关于应用程序的配置信息。
CONFIG += c++11 //使用c++11的特性
在这里使用“+=”,是因为我们添加我们的配置选项到任何一个已经存在中。这样做比使用“=”那样替换已经指定的所有选项更安全。
相关文章:
QT进阶---------pro项目文件中的常用命令 (第三天)
1、命令一 决定exe可执行程序的生成路径CONFIG 作用:不使用默认路径,方便移植 CONFIG(debug, debug|release) {DESTDIR $$_PRO_FILE_PWD_/../../../debugXXXsystem } else {DESTDIR $$_PRO_FILE_PWD_/../../../realeaseXXXsystem } 是用于 Qt 项目…...
php常用设计模式应用场景及示例
单例模式 含义描述 应用程序中最多只有该类的一个实例存在 应用场景 常应用于数据库类设计,采用单例模式,只连接一次数据库,防止打开多个数据库连接。 代码示例 class Singleton {private static $instance; // 定义一个私有的静态变量保存…...
浏览器与服务器通信过程(HTTP协议)
目录 1 概念 2 常见的 web 服务器有 3 浏览器与服务器通信过程 3.1 DNS 3.2 URL 4 HTTP请求方法和应答状态码 4.1 HTTP请求报文段实例 4.2 HTTP请求方法 5 HTTP应答报头和应答状态 5.1 HTTP的应答报头结构 5.2 HTTP的应答状态 1 概念 浏览器与 web 服务器在应用层通…...
Pytorch搭建AlexNet 预测实现
1.导包 import torch import matplotlib.pyplot as plt import json from model import AlexNet from PIL import Image from torchvision import transforms 2.数据预处理 data_transform transforms.Compose([transforms.Resize((224, 224)), # 将图片重新裁剪transform…...
笔记:使用parfile进行的数据导入导出
expdp ‘username/password’ parfileE:\dmp_tmp\par.txt DIRECTORYdmptmp LOGFILESYS_SEND_LOG.log DUMPFILESYS_SEND_LOG.dmp tablesSYS_SEND_LOG_BAK query“where send_dt>TO_DATE(‘2024-03-13’,‘yyyy-mm-dd’)” impdp ‘username/password’ directorydmptmp dum…...
基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的行人跌倒检测系统(深度学习+UI界面+完整训练数据集)
摘要:开发行人跌倒检测系统在确保老年人安全方面扮演着至关重要的角色。本篇文章详尽地阐述了如何利用深度学习技术构建一个行人跌倒检测系统,并附上了完整的代码实现。该系统采用了先进的YOLOv8算法,并对YOLOv7、YOLOv6、YOLOv5等先前版本进…...
Ubuntu 14.04:PaddleOCR基于PaddleServing的在线服务化部署(失败)
一、 二、安装 注: 安装 PaddleOCR 2.3 。 因为 PaddleOCR 2.4 的 推荐环境 PaddlePaddle > 2.1.2。 https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.4/doc/doc_ch/environment.md 安装前的环境准备 在使用Paddle Serving之前,需要完…...
Java JUC 笔记(2)
Java JUC 笔记(2) 锁框架 JDK5以后增加了Lock接口用来实现锁功能,其提供了与synchronized类似的同步功能,但是在使用时手动的获取和释放锁 Lock和Condition锁 这里的锁与synchronized锁不太一样,我们可以认为是Loc…...
webpack5高级--02_提升打包构建速度
提升打包构建速度 一、HotModuleReplacement 为什么 开发时我们修改了其中一个模块代码,Webpack 默认会将所有模块全部重新打包编译,速度很慢。 所以我们需要做到修改某个模块代码,就只有这个模块代码需要重新打包编译,其他模…...
MAC M芯片 Anaconda安装
Anaconda安装 1.M芯片下载AnaConda 1.M芯片下载AnaConda https://www.anaconda.com/download 安装完成 conda的版本是24.1.2...
【JS】自动下拉网页刷新,当出现指定关键字,就打印出来
批量检查域名是否可以注册 1、有的网站数据是通过下拉发生请求,间隔x毫秒自动下拉 2、查找某个关键字,找到就打印出来 3、打印数据自动去重 4、当连续n次下拉,没有新div元素出来,就停止该循环 var map {}; var count 0; var l…...
中兴通讯联手新疆移动,开通全疆首个乡农场景700M+900M双频双模基站
日前,在新疆博尔塔拉蒙古自治州,中兴通讯携手新疆移动共同完成了全疆首个乡农场景的700M900M双频双模基站建设,其通过采用“700M与900M共天馈共RRU设备”,成功实现乡农4/5G网络的同站址快速部署,为新疆的农牧业发展注入…...
爬虫案例4: parsel 模块的运用
目标页面: https://www.shanghairanking.cn/rankings/bcur/2023 打印在终端import requests import json from urllib.parse import urljoin from parsel import Selectorurl https://www.shanghairanking.cn/rankings/bcur/2023headers {User-Agent: Mozilla/5.0 (Macintosh…...
数据结构·复杂度
目录 1 时间复杂度 2 大O渐进表示法 举例子(计算时间复杂度为多少) 3 空间复杂度 前言:复杂度分为时间复杂度和空间复杂度,两者是不同维度的,所以比较不会放在一起比较,但是时间复杂度和空间复杂度是用…...
数学建模理论与实践国防科大版
目录 1.数学建模概论 2.生活中的数学建模 2.1.行走步长问题 2.2.雨中行走问题 2.3.抽奖策略 2.4.《非诚勿扰》女生的“最优选择” 3.集体决策模型 3.1.简单多数规则 3.2.Borda数规则 3.3.群体决策模型公理和阿罗定理 1.数学建模概论 1.数学模型的概念 2.数学建模的概…...
Yakit爆破模块应用
yakit介绍 一款集成了各种渗透测试功能的集成软件。(类似于burp,但我感觉他功能挺强大) 爆破模块位置 按照下面图标点击 界面就是如下。 左侧可以选择爆破的类型,各种数据库http,ssh等都支持。 爆破参数 可以选择…...
【3GPP】【核心网】【5G】NAS连接管理和UE注册管理状态(超详细)
1. NAS连接管理 NAS连接管理包括通过N1接口在UE和AMF之间建立和释放NAS信令连接的功能。NAS信令连接用于实现UE与核心网络之间的NAS信令交换。当UE接入5G网络时,首先与基站建立RRC连接,当RRC连接建立完成后,UE与基站的空口连接成功建立。随后…...
细粒度IP定位参文2(Corr-SLG):A street-level IP geolocation method (2021年)
[2]S. Ding, F. Zhao, and X. Luo, “A street-level IP geolocation method based on delay-distance correlation and multilayered common routers,” Secur. Commun. Netw., vol. 2021, no. 1, pp. 1–10, 2021. 智能设备的地理位置可以帮助提供多媒体内容提供商和5G网络中…...
Mac上使用M1或M2芯片的设备安装Node.js时遇到一些问题,比如卡顿或性能问题
对于Mac上使用M1或M2芯片的设备可能会遇到在安装Node.js时遇到一些问题,比如卡顿或性能问题。这可能是因为某些软件包或工具在M1或M2芯片上的兼容性不佳。为了解决这个问题,您可以尝试以下方法: 1. 使用Rosetta模式 对于一些尚未适配M1或M2…...
学习vue3第四节(ref以及ref相关api)
主要记录以下api:ref()、isRef()、unref()、 shallowRef()、triggerRef()、customRef() 1、ref() 定义 接受一个内部值,返回一个响应式的、可更改的 ref 对象,此对象只有一个指向其内部值的属性 .value,.value属性用于追踪并且存…...
OpenClaw自动化测试:Gemma-3-12b-it生成与执行单元测试用例
OpenClaw自动化测试:Gemma-3-12b-it生成与执行单元测试用例 1. 为什么需要AI生成单元测试 作为独立开发者,我长期面临一个矛盾:明知单元测试对代码质量至关重要,却总在项目赶工时优先砍掉测试环节。直到发现OpenClaw的test-gene…...
国内AI招聘系统,如何才能选对系统的真实能力?
你有没有过这样的经历:看了一堆 AI 招聘系统的宣传,吹得天花乱坠,又是 “智能筛选” 又是 “AI 面试”,结果买回去发现根本不是那么回事 —— 简历筛选还是靠关键词匹配,AI 面试就是把预设问题念一遍,候选人…...
LittleLink安全配置:保护你的个人链接页面免受恶意攻击
LittleLink安全配置:保护你的个人链接页面免受恶意攻击 【免费下载链接】littlelink A lightweight DIY Linktree alternative. 项目地址: https://gitcode.com/gh_mirrors/li/littlelink LittleLink作为一款轻量级DIY Linktree替代方案,让用户能…...
产业园区如何搭建智能化技术服务平台?
观点作者:科易网-国家科技成果转化(厦门)示范基地 一、现状概述:传统产业园区服务的效能瓶颈与转型需求 产业园区作为区域经济发展的重要载体和创新要素集聚的核心区域,近年来在国家创新驱动发展战略的引领下取得了显著…...
基于QT(C++)+Oracle实现的(界面)教务管理系统
一、选题背景 教务管理系统是基本每个高校都有的一个系统,教务系统管理系统充分利用互联网络B/S管理系统模式,以网络为平台,为各个学校教务系统的管理提供一个平台,帮助学校管理教务,用一个账号解决学校教务教学管理&…...
如何快速解决Hackintosh配置难题:OpCore-Simplify终极解决方案指南
如何快速解决Hackintosh配置难题:OpCore-Simplify终极解决方案指南 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的OpenCore …...
【数字运维合集】400余份数字运维、AI运维、智慧运维、数字化运维运营方案报告合集
数字化运维奠定数据基础,AI运维实现智能分析与主动预防,智慧运维达成人机协同与自主决策。三者层层递进,配合组织、流程、平台、数据“四位一体”运营方案,构建从被动救火到业务融合的智能化运维体系。AI Agent(智能体…...
轻松掌握XUnity自动翻译器:从入门到精通的高效无忧实用指南
轻松掌握XUnity自动翻译器:从入门到精通的高效无忧实用指南 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 还在为玩不懂外语游戏而烦恼吗?XUnity自动翻译器就是你的救星ÿ…...
超维USV-M1000无人船实战:手把手教你搞定元生RTK、元厚测深仪与QGC地面站联调
超维USV-M1000无人船多设备联调实战:从RTK配置到QGC地面站深度整合 当超维USV-M1000无人船从包装箱中取出时,摆在工程师面前的从来不是一台即插即用的设备,而是一个需要精密调校的测绘系统集成平台。这款专为水域测绘设计的无人船,…...
洗衣液模式小程序开发指南
开发洗衣液模式小程序需结合用户需求与行业特点,以下为关键开发方向与实现方法:核心功能设计智能推荐系统 根据衣物材质、污渍程度自动推荐洗衣液用量及模式。需接入AI算法分析用户输入数据(如衣物类型、污渍等级)。 示例代码&…...
