Qt中pro项目文件配置介绍

Qt中,工程文件是以.pro后缀的文件,主要用以包含Qt模块,代码文件,依赖库,以及对项目的一些属性进行配置。

具体看个例子:

cpp 复制代码
#这块是添加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

#指定编译生成的文件到temp目录 分门别类存储
#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

通过上面的例子解释,可以看到一些常见的宏的说明和使用方法,下面汇总以下一些主要的宏说明:

cpp 复制代码
$$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头文件的
相关推荐
吴声子夜歌7 分钟前
Java数据结构与算法——基本数学问题
java·开发语言·windows
wanglei20070844 分钟前
生产者消费者
开发语言·python
ChineHe44 分钟前
Redis数据类型篇002_详解Strings核心命令与存储结构
数据库·redis·缓存
清水白石0081 小时前
《从零到进阶:Pydantic v1 与 v2 的核心差异与零成本校验实现原理》
数据库·python
leo__5201 小时前
基于菲涅耳衍射积分的空心高斯光束传输数值模拟(MATLAB实现)
开发语言·matlab
昵称已被吞噬~‘(*@﹏@*)’~1 小时前
【RL+空战】学习记录03:基于JSBSim构造简易空空导弹模型,并结合python接口调用测试
开发语言·人工智能·python·学习·深度强化学习·jsbsim·空战
电商API&Tina1 小时前
京东 API 数据采集接口接入与行业分析
运维·服务器·网络·数据库·django·php
短剑重铸之日1 小时前
《SpringBoot4.0初识》第一篇:前瞻与思想
java·开发语言·后端·spring·springboot4.0
2501_941877981 小时前
从配置热更新到运行时自适应的互联网工程语法演进与多语言实践随笔分享
开发语言·前端·python
Wyn_1 小时前
【ZMQ/QT】Windows11 + Qt 安装配置zmq(亲测可用)
qt·zmq·windows11