一、.pro文件内容解释
.pro文件是qmake用来生成makefile文件的中间文件。
新建简单Qt工程,默认生成 .pro文件内容如下,解释见注释:
1 # [QT+= ]语法,定义该工程包含的Qt模块
2 QT += core gui
3 # 由于Qt5将widgets模块从gui模块独立出来了,所以定义Qt主版本大于4就要包含widgets模块
4 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
5
6 # 编译宏,使用c++17编译
7 CONFIG += c++17
8 # 也可以 CONFIG -=
9 # CONFIG -= debug 不编译debug类型
10
11 # You can make your code fail to compile if it uses deprecated APIs.
12 # In order to do so, uncomment the following line.
13 # DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
14
15 # 需要编译的源文件路径(项目根目录的相对路径)
16 SOURCES += \
17 main.cpp \
18 widget.cpp
19
20 # 需要编译的头文件路径(项目根目录的相对路径)
21 HEADERS += \
22 widget.h
23
24 # 需要编译的ui文件路径(项目根目录的相对路径)
25 FORMS += \
26 widget.ui
27
28 # 只知道是设置目标可以执行文件路径的,具体语法看不懂,如果你知道欢迎评论区留言
29 # Default rules for deployment.
30 qnx: target.path = /tmp/$${TARGET}/bin
31 else: unix:!android: target.path = /opt/$${TARGET}/bin
32 !isEmpty(target.path): INSTALLS += target
除工程默认的一些字段,.pro文件还有一些其他字段:
1 # 目标可执行文件的名称,不指定默认为工程名
2 TARGET = exe_name
3
4 # 目标可执行文件的存放目录,不指定默认为realse目录
5 # 几个指定目录的符号:
6 # 宏 $$PWD 代表当前目录和 ./ 等效
7 # ../ 代表上一级目录
8 DESTDIR = exe_dir
9
10 # 编译宏开关,根据不同宏作不同的编译
11 DEFINES += defines
12
13 # obj文件目录,即 .o 文件
14 OBJECTS_DIR = obj_dir
15
16 # 资源文件路径,包括图片、音频等(项目根目录的相对路径)
17 RESOURCES += res.rc
18
19 # 链接库路径(项目根目录的相对路径)
20 DEPENDPATH += depend_dir
21
22 # 链接库文件(项目根目录的相对路径)
23 LIBS += -Llib_name
24 # 也可以直接写带路径的链接库文件
25 LIBS += -Llib_dir_name
26
27 # 引用库头文件路径(项目根目录的相对路径)
28 INCLUDES += include_dir
29
30 # 项目使用的模板类型
31 TEMPLATE = app
32 TEMPLATE = lib
二、qmake生成makefile过程
to be continue…