QMake 脚本知识点记录

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 函数最常用于包含其他项目文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值