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