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) 为不同操作系统编写特定的规则。

相关推荐
万年咸鱼5 分钟前
Java BufferedInputStream 详解:原理、用法与实战
java·开发语言·python
weixin199701080167 分钟前
[特殊字符]《二手ERP × 闲鱼消息驱动架构:正向+逆向交易消息如何驱动WMS出库与回传》(附Python源码)
开发语言·python·架构
galaxy_strive23 分钟前
Qt C++插件化编写项目(1)
开发语言·c++·qt
见叶之秋34 分钟前
【C++】C++ 核心进阶(一):泛型编程基石 —— 模板初阶与 STL 体系开篇
开发语言·c++
Escalating_xu35 分钟前
【Makefile 进阶】从自动发现源文件、模式规则到目录分离与多模块递归构建
linux·开发语言
艾莉丝努力练剑44 分钟前
【AI大模型接入SDK】Gemini模型接入知识体系
java·开发语言·网络·人工智能·网络协议·学习·http
传奇开心果编程1 小时前
【Rust入门知识点学与练】第13课:枚举 Enum
开发语言·学习·rust
zhanghaha13141 小时前
Python进阶教程:28_queue 队列模块 零基础超详细教程
java·开发语言·python
司小豆1 小时前
第七课:DeepSeek Harness 服务与依赖注入
java·服务器·开发语言·github·ai编程
weixin199701080161 小时前
[特殊字符]《闲鱼 + 淘宝 + 1688 三平台库存同源:二手ERP主数据治理与超卖防御》(附Python源码)
开发语言·python