使用方式 Variable += option1|option2......
常见变量及部分内容
CONFIG定义项目的配置和编译选项;大小写敏感
变量值/选项(options) | 说明 |
---|---|
release/debug | 可以有多个,最后一个生效 |
debug_and_release | 包含两种模式,需要分别编译 |
debug_and_release_target | 分别生成在对应文件路径(debug、release)(默认包含) |
build_all | 同时编译不同模式 |
oredered | 包含子路径(subdirs)时,按顺序编译(不建议使用,避免相互引用,建议在subdirs内进行配置 |
warn_on/warn_off | 编译器告警数目限制(是对少,而非有无) |
exceptions/exceptions_off | 异常提示(默认打开) |
stl/stl_off | STL支持 |
thread | 多线程,在包含qt模式下即有效(后者默认包含) |
utf8_source | 编辑器编码模式,默认值 |
c99/c11/c17 | C标准,编译器不支持相关版本时,设置下无效 |
c++11/c++14/c++17 | C++标准,编译器不支持相关版本时,设置下无效 |
depend_includepath | 附件INCLUDEPATH到DEPENDPATH,默认包含 |
qt | 基于qt的应用或库,需要包含,默认包含 |
shared/dll | 生产共享对象(object或DLL) |
static/staticlib | 静态对象 |
plugin | 插件静态库(默认激活dll) |
app_bundle/lib_bundle/plugin_bundle | 产生的app、静态库、插件放在一个包(bundle) |
DEFINE::加入自定义宏,编译时结合测试函数使用
使用:DEFINE+= MYDEFINE
DESTDIR::生成目标路径,使用:DESTDIR=./lib
FORMS:UI文件,使用:FORMS = myclass.h \ login.h \ mainwindow.h(多个文件使用"\"分隔)
INCLUDEPATH:包含路径 ,INCLUDEPATH = c:/msdev/include d:/stl/include;路径包含空格的需要使用"":win32:INCLUDEPATH += "C:/mylibs/extra headers"
SOURCES:代码源文件:
SOURCES = myclass.cpp \ login.cpp \ mainwindow.cpp
INSTALLS:后期安装执行命令,会将生成内容放到指定路径下
target.path += $$[QT_INSTALL_PLUGINS]/imageformats INSTALLS += target
LIBS:包含的库列表;使用:unix模式带符号:-Lxxxx(路径), -lxxx(库名称),Windows: 路径名称,Windows下unix模式依然生效:
unix:LIBS += -L/usr/local/lib -lmath
win32:LIBS += c:/mylibs/math.lib
包含空格时,需要使用""进行引用:
win32:LIBS += "C:/mylibs/extra libs/extra.lib"
unix:LIBS += "-L/home/user/extra libs" -lextra
MOC_DIR:moc文件路径
unix:MOC_DIR = ../myproject/tmp
win32:MOC_DIR = c:/myproject/tmp
QT:qt模块 添加模块:QT += sql;移除模块:QT -= gui # Only the core module is used.
SUBDIRS:子工程内容,包含子工程时,当前项目引用的子项目列表,编译按顺序执行
SUBDIRS = kernel \ tools \ myapp;
如果存在依赖顺序,可使用depends修正:
SUBDIRS += my_executable my_library tests doc
my_executable.depends = my_library
tests.depends = my_executable
TEMPLATE = app
TARGET = myapp
SOURCES = main.cpp
app:应用程序
lib:库文件
subdirs:包含子项目的工程
vcapp\vclib:Windows下的指定类型
TEMPLATE = lib
SOURCES = main.cpp
TARGET = mylib
VERSION:应用版本,