-
#:注释一行
-
QT:此项目中使用的Qt modules列表
-
CONFIG:此项目中使用的配置选项
-
TARGET:目标输出文件的名字
-
TEMPLATE:当生成二进制文件时项目的模版,例如app,lib
-
平台下使用
windows { SOURCES += SysInfoWindowsImpl.cpp HEADERS += SysInfoWindowsImpl.h } linux { } unix { } macx { }
-
嵌套使用
windows { SOURCES += SysInfoWindowsImpl.cpp HEADERS += SysInfoWindowsImpl.h debug { # 等价于if (windows && debug) SOURCES += DebugClass.cpp HEADERS += DebugClass.h } }
-
条件判断
windows|unix { SOURCES += SysInfoWindowsAndLinux.cpp } else:macx { SOURCES += SysInfoMacImpl.cpp } else { SOURCES += UltimateGenericSources.cpp }
操作符说明
- =:给变量赋值
- +=:给变量列表添加值
- -=:给列表移除值
- *=:仅在该值不存在的情况下才添加到列表中
- ~=:用指定的值替换符合正则表达式的任意值
函数
-
定义一个变量,并使用message()函数,此函数编译时会发出信息在编译输出框
COMPILE_MSG = "Compiling on" windows { # 编译框输出 Project MESSAGE: Compiling on windows message($$COMPILE_MSG windows) }
-
error(string):显示字符串并立即退出编译
-
exists(filename):测试是否存在filename
-
include(filename):将其它.pro文件添加进来
qmake编译过程
- 蓝色方框是命令,波浪形方框是文件
1)【qmake】命令与.pro文件一起执行,在项目文件基础上生成一个Makefile文件
2)【make】命令调用其他命令来生成中间文件
3)【uic】命令全称User Interface Compiler。此命令会将所有的.ui文件生成相关的ui_*.h头文件以便能在自己对应的.cpp文件引用
4)【moc】命令接收每一个包含Q_OBJECT宏的类(与超类QObject配对),并生成中间moc_*.cpp文件,里面包含了信号槽工作所需的一切
5)【g++】命令被执行,将所有源文件和中间的moc文件编译成.o文件,最后链接成二进制可执行程序