Qt 学习(二) —— .pro文件详解

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

猜你喜欢

转载自blog.csdn.net/maizousidemao/article/details/125903420