1. 简单工程配置
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += c++11
CONFIG += debug # debug/release
HEADERS += demo.h # 头文件 列表
SOURCES += main.cpp demo.cpp # 源文件 列表
FORMS += mainwin.ui # 窗体 列表
###########################################################
HEADERS :应用程序的头文件列表
SOURCES :应用程序的源文件列表
FORMS :应用程序的 UI(Qt Designer 创建)文件列表
LEXSOURCES :应用程序的 LEX 原文件列表
YACCSOURCES :应用程序的 YACC 源文件列表
TARGET :应用程序的可执行文件名称
DESTDIR :生成的目标文件的存放目录
DEFINES :应用程序指定的预定义预处理器符号
INCLUDEPATH :编译器的搜索头文件路径
DEPENDPATH :应用程序的依赖查找路径
VPATH :寻找补充文件的搜索路径
DEF_FILE :应用程序链接的 .def 文件,仅支持 Windows。
RC_FILE :应用程序的资源文件,仅支持 Windows。
RES_FILE :应用程序链接的资源文件,仅支持 Windows。
###########################################################
2. 平台相关的源文件
contains(QT_ARCH, arm64) {
message("arm64")
} else {
message("x86")
}
contains(QT_ARCH, i386) {
message("32-bit")
} else {
message("64-bit")
}
win32 {
SOURCES += demo_win.cpp # windows
}
unix {
SOURCES += demo_unix.cpp # unix
}
linux {
SOURCES += demo_linux.cpp # linux
}
3. 打印 Qt 环境
message(Qt version: $$[QT_VERSION])
message(Qt is installed in $$[QT_INSTALL_PREFIX])
message(Qt resources can be found in the following locations:)
message(Documentation: $$[QT_INSTALL_DOCS])
message(Header files: $$[QT_INSTALL_HEADERS])
message(Libraries: $$[QT_INSTALL_LIBS])
message(Binary files (executables): $$[QT_INSTALL_BINS])
message(Plugins: $$[QT_INSTALL_PLUGINS])
message(Data files: $$[QT_INSTALL_DATA])
message(Translation files: $$[QT_INSTALL_TRANSLATIONS])
message(Settings: $$[QT_INSTALL_CONFIGURATION])
message(Examples: $$[QT_INSTALL_EXAMPLES])
4. 检查文件是否存在
# 使用 exist() 函数检查文件是否存在。
# 使用 error() 函数停止 qmake 编译。
!exists(main.cpp) {
error("main.cpp not found, abort compile")
}
# 如果添加了 network 模块,则把对应的头文件和源文件添加到项目中
contains(QT, network) {
message("network build")
HEADERS += network.hpp
SOURCES += network.cpp
}
5. 多条件嵌套
unix {
debug {
CONFIG += console
}
}
与以下同:
win32:debug {
CONFIG += console
}
6. Qt 禁用警告和提示
win32 {
QMAKE_CXXFLAGS += wd "4244"
}
unix {
QMAKE_CXXFLAGS += -Wno-unused-parameter
}
7. 包含其他项目文件
include(other.pro)
# qmake 提供了许多内置函数来处理变量的内容。
# include 函数最常用于包含其他项目文件。