一、Qt工程配置文件“xxx.pro”中常用配置
TARGET = test
QT += widget mysql network designer
CONFIG += debug
TEMPLATE = app
DESTDIR = ./bin
resources += xx.qrc
forms += xx.ui
headers += xx.h
sources += main.cpp \
xxx.cpp
# 预处理定义列表
DEFFINES +=
# 应用程序的依赖关系搜索路径
DEPENDPATH +=
# 仅在Windows有效:为应用程序链接的一个.def文件
DEF_FILE =
# 查找所提供的文件的搜索路径
VPATH =
# 指定库或者程序的版本号
VERSION = xx.xx.0
# 声明其它库的路径和对应库
LIBS += -L/usr/local/lib -lmath
INCLUDEPATH += c:/msdev/include d:/stl/include
# 根据不同的操作系统平台添加对应的头文件
win32{
sources += win.cpp
}
unix{
sources += unix.cpp
}
# 编译时判断某文件是否存在
!exists(main.cpp){
error("No main.cpp file found.")
}
# 只在win32的Debug模式下生成控制台窗口
win32{
debug{
config += console
}
Release{
}
}
# 或者使用以下方式
win32:debug{
config += console
}
二、编写“.pro” 文件的注意事项
1、在“.pro”文件中获取变量的内容使用$$
: QMAKE_DOCS = $$PWD/doc/qtcore.qdocconf
2、使用空格来分割变量对应的多个值: QT += widget mysql network
3、当变量值含空格时,使用双引号: win32:INCLUDEPATH += "C:/mylibs/extra headers"
三、pro文件中的TEMPLATE 变量有以下取值:
app: 创建一个应用程序的Makefile
lib: 创建一个库,包括动态库或静态库的Makefile
aux: 不会创建任何东西的Makefile,通常用于解释型语言编写的工程代码
subdirs: 包含使用SUBDIR变量指定的子目录规则的生成文件,每个子目录必须包含自己的pri文件
vcapp: 构建一个应用程序的VisualStudio项目文件
vclib: 构建一个库的VisualStudio项目文件
vcsubdirs: 构建一个VisualStudia解决方案文件,以便在子目录中构建项目
四、 pro文件中的CONFIG变量有以下取值的一个或多个值列表:
debug: 仅构建debug
release:仅构建release
debug_and_release: 同时构建debug和release, 编译时需要使用make all 而不是make
build_all: 同时构建debug和release并且默认采用make all进行编译
testcase: 将template=app 的项目标记为测试项目,编译时需要使用 make check TESTRUNNER="test-wrapper --timeout 120" TESTARGS="-o result.xml,xunitxml"
dll: 将template=lib 的项目标记为*共享库*
staticlib: 将template=lib 的项目标记为*静态库*
plugin: 将template=lib 的项目标记为*插件*
CONFIG -= embed_manifest_dll: 配置删除dll的清单嵌入
CONFIG -= embed_manifest_exe: 配置删除exe的清单嵌入
五、测试config变量中的某些配置项是否存在
CONFIG += debug_and_release
CONFIG(debug, debug|release) {
TARGET = debug_binary
} else {
TARGET = release_binary
}
六、在工程中添加或移除Qt模块
QT += network xml
QT -= gui # 默认会包含GUI,使用该方式可以排除默认包含的gui模块
七、使用qmake命令行编译Qt工程: `qmake [mode] [options] files
mode选项包含下列值:
-makefile: qmake输出将是一个Makefile
-project: qmake输出将是一个项目文件
options包含下列值:
-help: 输出帮助信息
-o: qmake输出将被定向到file中,如果file被指定为“-”则输出指向stdout
-d: qmake将输出调试信息
-t tmpl: qmake将用tmpl覆盖任何设置的TEMPLATE变量,但只有在.pro文件被处理之后
-tp prefix: qmake将向TEMPLATE变量添加prefix
-Wall: 报告所有已知的警告
-Wnone: 不会生成任何警告信息
-Wparser: 仅会报告您在解析项目文件的过程中存在常见的缺陷和潜在的问题
-Wlogic: 将报告项目文件中常见的陷阱和潜在的问题
-after: 将在指定的文件后处理在命令行上给出的分配
-nocache: 忽略.qmake.cache文件
-cache file: 将使用文件作为缓存文件,而忽略任何其他找到的.qmake.cache文件
-nodepend: 不会生成任何依赖项信息
-spec macx-xcode: 指定目标平台为macx-xcode的工程项目
八、使用qmake 指令创建Visio Studio项目:
qmake -tp vc : 创建基于vs的.vcproj文件项目, 同 template = vcapp
qmake -tp vc -r: 创建基于vs的解决方案项目文件,同 template = vcsubdirs