qmake
qmake是用于为不同的平台和编译器书写Makefile的工具。
使用qmake,开发者创建一个简单的项目文件并且运行qmake生成适当的Makefile。
qmake可以供任何一个软件项目使用,而不用管他是不是使用Qt写成的,
qmake使用存储在项目(.pro)文件中的信息,来决定Makefile文件中该生成什么。
项目文件(.pro)
pro文件是整个工程的配置文件,例如工程里包含哪些文件,路径是什么;引用哪些库,路径是什么;使用了Qt的哪些组件等。qmake使用.pro文件生成Makefile。
QT += :指定工程中使用的Qt模块,默认情况下会使用Qt 的core和gui模块;
TARGET = :生成目标文件的名字,比如*.dll,*.exe;下面生成"Test.exe” 文件。
TEMPLATE:为哪种应用程序生成makefile。
app:创建生成application(应用程序)的makefile(TEMPLATE的默认值)。
lib:创建生成library(库文件)的makefile。生成.dll时需要用该选项。
lDEFINES:qmake添加该字段指定的全局宏定义。从Qt5.13.2开始多了2个变量:DEFINES_DEBUG和DEFINES_RELEASE,分别表示debug模式和release模式
SOURCES:工程中使用的所有源文件的名字(不包含路径)。
HEADERS:工程中使用的所有头文件的名字(不包含路径)。
FORMS:列出工程中使用的UI文件(xml格式),这些文件会在编译之前被 uic(User Interface Compile,UI编译器) 处理。
构建UI文件所需的依赖项、头文件、源文件等都会自动被添加到工程中。UIC会把 .ui(xml格式)文件转换成C++的 .h 文件(通常叫Ui_dialog.h)。其实是在.h文件
INCLUDEPATH:列出工程中 #include 项需要搜索的路径(directory),即头文件的路径。
多个路径用空格隔开。如果路径本身包含空格,则需要用双引号引起来。里定义一个类,里面包含了UI文件中的所以元素/对象。
DEPENDPATH:列出依赖项所在的路径。当处理included文件时会使用该项。
PWD:表示当前.pro文件所在的路径。
OUT_PWD:表示输出的“Makefile”所在的路径(通常在编译后生成的.exe文件的上层目录里)。
LIBS:指定工程里需要链接的库文件(.lib或.dll)。通常用Unix风格,大写的-L表示“路径”(library path),小写的-l表示“库文件”(library)。
DESTDIR:放置可执行程序目标的目录。
MOC_DIR:指定来自moc的所有中间文件放置的目录 。
OBJECTS_DIR:指定所有中间文件.o(.obj)放置的目录 。
RESOURCES:指定资源文件(qrc)的名称。
CONFIG变量:指定编译器所要使用的选项和所需要被连接的库。