在Qt中用qmake生成makefile文件主要是依据pro文件。
常用的参数
- 注释 pro文件中注释一行采用#
- HEADERS += 用来添加头文件
- SOURCES += 用来添加源文件
- FORMS += 用来添加ui文件
- RESOURCES += 用来添加资源文件
- INCLUDEPATH += 用来存放添加头文件的路径
DEPENDPATH += 用来添加依赖相关路径
INCLUDEPATH一般用在添加第三方dll的时候所需的头文件路径。HEADERS用来添加当前项目的路径
LIBS+=用来添加库文件。
LIBS += -LC:/Windows/System32/ -luser32 格式为:-L路径 -l库名。库比较多的时候可以用\来达到换行的目的
引用相对路径的库文件的时候。$$PWD指的是项目.pro文件所在的路径。$$OUT_PWD指的是编译的目标所在的路径。如果不清楚路径可以使用message($$PWD)打印路径查看绝对路径。TEMPLATE告诉makefile要生成那种makefile文件。也可以说是你要生成什么样的项目。例如app这个默认值在window下面表示你要生成.exe文件。
参数 说明 app 建立生成application的makefile文件。当CONFIG参数为windows会生成一个GUI工程,为console会生成一个控制台程序,为testcase则会成生成一个测试程序。 lib 建立一个生成库文件的makefile文件。 subdirs 建立一个生成子目录的makefile文件。一般出现在一个项目中有好几个子项目的时候 DESTDIR += 指定生成的应用程序的存放目录。
- TARGET = 指定生成的应用程序的名字。
- UI_DIR += 用来存放编译的时候ui生成的ui_*.h文件。
- RCC_DIR+=存放.qrc生成的qrc_*.h文件。
- MOC_DIR+=用来存放moc命令转换添加的Q_OBJECT的.h文件为标准.h文件的存放路径。
OBJECTS_DIR +=用来存放目标文件obj存放的路径。
UI_DIR 、RCC_DIR 、 MOC_DIR 、OBJECTS_DIR 可以认为都是用来存放中间文件,只是存放的中间文件有所不同,不指定的话默认会存放在.pro文件所在的路径,显得工程看起来比较乱。
CONFIG += 用来指的应用程序的配置信息。
参数 说明 release 项目被联编为一个发布的应用程序。 debug 项目被联编为一个debug的应用程序。debug和release同时设置的时候,最后面的一个生效。 debug_and_release 项目被联编为debug和release。 warn_on 编译器输出尽可能多的警告信息。 c++11 支持c++11的标准 thread 支持线程。当CONFGI参数包含qt的时候,这个是默认支持的。 DEFINES += 定义编译选项。
如果在代码中使用了如#ifdefine xx 就可以在这里添加。
可以用win32 linux andorid mac symbian来处理平台相关性内容。
例如:
win32 {
SOURCES += hello_win.cpp
}debug 和release用来处理debug和release版本相关的内容。
例如:
release {
SOURCES += hello_win.cpp
}QT += 用来处理需要依赖的Qt模块。如:network gui 等。
参考文档
QT中PRO文件写法的详细介绍,很有用,很重要!
http://blog.csdn.net/adriano119/article/details/5878169
官方文档
http://doc.qt.io/qt-5/qmake-variable-reference.html#target