Qt的.pro文件

一、一些概念

Qt的.pro文件是qmake构建系统使用的项目配置文件(类似脚本),用于描述项目的源文件、头文件、依赖库及编译选项。

二、基础语法

1.变量赋值:

= :普通赋值(覆盖原有值)

+= :追加值(推荐用于添加文件)

-= :移除值

*= :若不存在则追加

2.注释:以#或//开头

3.作用域:使用 { } 或换行缩进

三、常用核心变量

指那些直接决定项目构建方式、文件组成和运行环境的变量:模块与依赖 (最基础)、文件列表 (项目骨架) 、路径与输出 (控制生成位置)、编译与链接 (底层控制)、条件与平台 (逻辑控制)。

1.QT:指定使用的 Qt 模块

例如

QT += core gui widgets network

2.SOURCES:C++ 源文件列表

例如

SOURCES += main.cpp mainwindow.cpp

3.HEADERS:头文件列表

例如

HEADERS += mainwindow.h

4.FORMS:Qt Designer 界面文件

例如

FORMS += mainwindow.ui

5.RESOURCES:Qt 资源文件

例如

RESOURCES += app.qrc

6.DESTDIR:输出目录

DESTDIR = ../bin

7.TARGET:生成的可执行文件名

例如

TARGET = MyApp

8.INCLUDEPATH:库头文件搜索路径

例如

INCLUDEPATH += $$PWD/include

9.LIBS:链接的库文件

例如

LIBS += -L/usr/local/lib -lmylib

10.CODECFORSRC:告诉qmake及其调用的辅助工具(moc、uic),

当前项目的 C/C++ 源码文件、UI 文件等使用的字符编码格式(如 GBK、UTF-8)

11.DEFINES:预处理器宏定义,定义编译选项

例如

DEFINES += xxx_xxx,在.h文件中可以使用:#ifdefine xxx_xxx

四、常用函数

1.$$PWD:当前 .pro 文件所在的目录路径

2.$$files(pattern):获取匹配模式的文件列表,如 SOURCES += $$files(*.cpp)

3.contains(variable, value):检查变量是否包含指定值

4.message("变量名 = " $$变量名):查询变量的值

main.pro

#项目名称

TARGET = SimpleUI

引入核心模块和窗口组件模块

QT += core gui widgets

源文件列表

SOURCES += main.cpp

指定C++11及以上标准

CONFIG += c++11

1. 移除 Debug 模式,强制仅保留 Release 模式

CONFIG -= debug

CONFIG += release

2. 禁用 qmake 同时生成 Debug/Release 两个 Makefile(针对部分 Qt 版本)

CONFIG -= debug_and_release

CONFIG -= debug_and_release_target

3. 输出相应的变量值

message("变量名 = $$PWD")

message($$files(*.cpp))

五、.pro文件结构

一个规范的 .pro 文件通常遵循模块化的结构,可以将其划分为6个标准区域。

1.项目基础配置区 (Basic Configuration)

这是文件的开头,用于定义项目的名称、版本和使用的 Qt 模块。

QT:指定依赖的 Qt 模块

TARGET:生成的可执行文件或库的名字

VERSION:项目版本号(可选)

2.源码与资源文件区 (Source & Resource Files)

列出项目中所有的代码文件、头文件、UI 设计文件和资源文件。

SOURCES:C++ 源文件 (.cpp)

HEADERS:头文件 (.h)

FORMS:UI 设计文件 (.ui)

RESOURCES:资源文件 (.qrc)

DISTFILES:其他需要分发的非代码文件(如 README)

3.编译模式与标准区 (Build Configuration)

设置编译模式(Debug/Release)、C++ 标准版本以及编译器警告级别。

CONFIG:核心配置开关

DEFINES:预处理器宏定义

4.路径与输出控制区 (Paths & Output)

控制文件生成的位置,保持源码目录整洁。

DESTDIR:最终生成的 exe/dll 存放目录

OBJECTS_DIR:中间目标文件 (.o/.obj) 存放目录

MOC_DIR / UI_DIR:moc/uic 生成文件的存放目录

5.外部依赖区 (External Dependencies)

当项目依赖第三方库(如 OpenCV, Boost, MySQL等)时配置。

INCLUDEPATH:头文件搜索路径

LIBS:链接的库文件

6.平台差异化配置区 (Platform Specific)

使用作用域 (Scopes) 为不同操作系统编写特定的规则。

相关推荐
fengfuyao98515 小时前
CH552多功能音量调节旋钮设计与实现
c语言·开发语言
带娃的IT创业者15 小时前
工具状态失踪之谜:EventBus事件漏接与asyncio.Lock并发陷阱双线诊断
qt·websocket·并发控制·eventbus·事件驱动架构·pwa·asyncio.lock
xushichao198915 小时前
实时数据压缩库
开发语言·c++·算法
liurunlin88815 小时前
Go环境搭建(vscode调试)
开发语言·vscode·golang
故事和你9115 小时前
sdut-python-实验四-python序列结构(21-27)
大数据·开发语言·数据结构·python·算法
SuperEugene15 小时前
TypeScript+Vue 实战:告别 any 滥用,统一接口 / Props / 表单类型,实现类型安全|编码语法规范篇
开发语言·前端·javascript·vue.js·安全·typescript
liuyao_xianhui15 小时前
优选算法_模拟_提莫攻击_C++
开发语言·c++·算法·动态规划·哈希算法·散列表
.select.16 小时前
c++ 移动赋值/移动构造函数
开发语言·c++
我是鶸16 小时前
secml-malware python library 源码分析及实践
开发语言·python
setmoon21416 小时前
C++代码规范化工具
开发语言·c++·算法