#:注释一行
QT:此项目中使用的Qt modules列表
CONFIG:此项目中使用的配置选项
TARGET:目标输出文件的名字
TEMPLATE:当生成二进制文件时项目的模版,例如app,lib
平台下使用
windows {
SOURCES += SysInfoWindowsImpl.cpp
HEADERS += SysInfoWindowsImpl.h
}
linux {
}
unix {
}
macx {
}
嵌套使用
windows {SOURCES += SysInfoWindowsImpl.cppHEADERS += SysInfoWindowsImpl.hdebug { # 等价于if (windows && debug)SOURCES += DebugClass.cppHEADERS += 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 windowsmessage($$COMPILE_MSG windows)
}
error(string):显示字符串并立即退出编译
exists(filename):测试是否存在filename
include(filename):将其它.pro文件添加进来
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文件,最后链接成二进制可执行程序