一杯清酒邀明月
天下本无事,庸人扰之而烦耳。

一、.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…

posted on 2024-03-15 09:59  一杯清酒邀明月  阅读(466)  评论(0编辑  收藏  举报