以下资料均为网上搜集,主要为了记住配置方便查找。
CONFIG
用来专门制定编译器选项以及项目配置
选项 | 说明 |
---|---|
release | 项目以release模式构建。 |
debug | 项目以debug模式构建。 |
debug_and_release | 项目准备以debug和release两种模式构建。 |
debug_and_release_target | 此选项默认设置。如果也指定了debug_and_release,最终的debug和release构建在不同的目录。 |
build_all | 如果指定了debug_and_release,默认情况下,该项目会构建为debug和release模式。 |
autogen_precompile_source | 自动生成一个.cpp文件,包含在.pro中指定的预编译头文件。 |
ordered | 使用subdirs模板时,此选项指定应该按照目录列表的顺序处理它们。 |
precompile_header | 可以在项目中使用预编译头文件的支持。 |
warn_on | 编译器应该输出尽可能多的警告。如果也指定了warn_off,最后一个生效。 |
warn_off | 编译器应该输出尽可能少的警告。 |
exceptions | 启用异常支持。默认设置。 |
DEFINES
qmake添加这个变量的值作为编译器C预处理器宏(-D选项)。
例如:
DEFINES += USE_MY_STUFF
然后就可以在代码中使用:
#ifdef USE_MY_STUFF
// TODO
#else
// TODO
#endif
用来制定项目的特殊版本,对一些特殊功能模块进行限制。
DESTDIR
指定生成的应用程序放置的目录
DESTDIR += ../bin
UI_DIR
指定uic命令将.ui文件转化成ui_*.h文件的存放的目录
UI_DIR += forms
RCC_DIR
指定rcc命令将.qrc文件转换成qrc_*.h文件的存放目录
unix:RCC_DIR = ../myproject/resources
win32:RCC_DIR = c:/myproject/resources
MOC_DIR
指定moc命令将含Q_OBJECT的头文件转换成标准.h文件的存放目录
MOC_DIR += ../tmp
FORMS
指定工程中包含的ui设计文件。
FORMS = mydialog.ui \
mywidget.ui \
myconfig.ui
HEADERS
指定项目中所有的头文件。
qmake会自动检测是头文件的类中是否需要moc,并增加适当的依赖关系和文件到项目中,来生成和链接moc文件。
HEADERS = myclass.h \
login.h \
mainwindow.h
INCLUDEPATH
编译项目包含的路径
INCLUDEPATH = c:/msdev/include d:/stl/include
win32:INCLUDEPATH += "C:/mylibs/extra headers"
unix:INCLUDEPATH += "/home/user/extra headers"
LIBS
引入的lib文件的路径 -L:引入路径
linux 必须 -l (library) 和 -L (library path) windows和linux不一样。
win32:LIBS += c:/mylibs/math.lib
unix:LIBS += -L/usr/local/lib -lmath
win32:LIBS += "C:/mylibs/extra libs/extra.lib"
unix:LIBS += "-L/home/user/extra libs" -lextra
OBJECTS_DIR
指定所有中间文件.o(.obj)放置的目录。
unix:OBJECTS_DIR = ../myproject/tmp
win32:OBJECTS_DIR = c:/myproject/tmp
QT
指定程序需要的模块
QT += core gui widgets xml network
RESOURCES
指定资源文件 (qrc) 的名称
RESOURCES += Resource/resource.qrc
RC_FILE
指定应用程序资源文件的名称
RC_FILE += myapp.rc
SOURCES
指定项目中所有源文件。
SOURCES = myclass.cpp \
login.cpp \
mainwindow.cpp
TARGET
指定目标文件的名称
TEMPLATE = app
TARGET = myapp
SOURCES = main.cpp
上面项目会生成一个可执行文件,Windows下为myapp.exe,Unix下为myapp。
TEMPLATE
A> app -建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被使用。
B> lib - 建立一个库的makefile。
C> vcapp - 建立一个应用程序的VisualStudio项目文件。
D> vclib - 建立一个库的VisualStudio项目文件。
E> subdirs -这是一个特殊的模板,它可以创建一个能够进入特定目录并且为一个项目文件生成makefile并且为它调用make的makefile。
TEMPLATE = lib
SOURCES = main.cpp
TARGET = mylib
TRANSLATIONS
指定包含用户界面翻译文本的翻译(.ts)文件列表。
TRANSLATIONS += Resource/myapp_zh.ts \
Resource/myapp_en.ts