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

相关推荐
qq_401700412 小时前
Qt 事件处理机制
java·数据库·qt
FAFU_kyp2 小时前
Rust 的 引用与借用
开发语言·算法·rust
喵星人工作室2 小时前
C++传说:神明之剑0.4.5装备机制彻底完成
开发语言·c++·游戏
秦jh_2 小时前
【Qt】系统相关(下)
开发语言·qt
东木月2 小时前
使用python获取Windows产品标签
开发语言·windows·python
pumpkin845142 小时前
Go 基础语法全景
开发语言·后端·golang
hqwest2 小时前
码上通QT实战18--监控页面10-获取设备数据
开发语言·qt·湿度·modbus功能码·寄存器地址·从站数据·0103
星火开发设计2 小时前
C++ multiset 全面解析与实战指南
开发语言·数据结构·c++·学习·set·知识
lsx2024063 小时前
Eclipse 添加书签
开发语言