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

相关推荐
郭涤生6 小时前
不同主机之间网络通信-以太网连接复习
开发语言·rk3588
山居秋暝LS6 小时前
【无标题】RTX00安装paddle OCR,win11不能装最新的,也不能用GPU
开发语言·r语言
卢锡荣6 小时前
单芯通吃,盲插标杆 —— 乐得瑞 LDR6020,Type‑C 全场景互联 “智慧芯”
c语言·开发语言·计算机外设
Xin_ye100866 小时前
C# 零基础到精通教程 - 第七章:面向对象编程(入门)——类与对象
开发语言·c#
AI科技星7 小时前
《数学公理体系·第三部·数术几何》(2026 年版)
c语言·开发语言·线性代数·算法·矩阵·量子计算·agi
审判长烧鸡7 小时前
【Go工具】go-playground是什么组织?官方的?
开发语言·安全·go
kkeeper~7 小时前
0基础C语言积跬步之字符函数与字符串函数(上)
c语言·开发语言
hhb_6188 小时前
Swift核心技术难点与实战案例解析
开发语言·ios·swift
一楼的猫8 小时前
从工具链视角对比:番茄作家助手 vs 第三方写作辅助方案
java·服务器·开发语言·前端·学习·chatgpt·ai写作
程序leo源8 小时前
Qt窗口详解
开发语言·数据库·c++·qt·青少年编程·c#