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

相关推荐
郑州光合科技余经理4 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
feifeigo1234 天前
matlab画图工具
开发语言·matlab
dustcell.4 天前
haproxy七层代理
java·开发语言·前端
norlan_jame4 天前
C-PHY与D-PHY差异
c语言·开发语言
多恩Stone4 天前
【C++入门扫盲1】C++ 与 Python:类型、编译器/解释器与 CPU 的关系
开发语言·c++·人工智能·python·算法·3d·aigc
QQ4022054964 天前
Python+django+vue3预制菜半成品配菜平台
开发语言·python·django
遥遥江上月4 天前
Node.js + Stagehand + Python 部署
开发语言·python·node.js
m0_531237174 天前
C语言-数组练习进阶
c语言·开发语言·算法
Railshiqian4 天前
给android源码下的模拟器添加两个后排屏的修改
android·开发语言·javascript
雪人不是菜鸡4 天前
简单工厂模式
开发语言·算法·c#