学习Qt时,发现有些知识看了不经常用就忘了,以下是书本上写的一些关于qmake的相关知识,自己看后,打算把一些经常用到的记下来,整理整理。
Qt程序一般使用Qt提供的qmake工具来编译。
qmake工具可以使用与平台无关的.pro文件生成与平台相关的makefile。该工具包含了调用Qt内置代码生成工具(moc,uic,rcc)的必要逻辑规则。
可以在命令行下,输入qmake -project来生成平台无关的pro文件。
工程文件pro主要分为三种:app(单独的应用程序),lib(静态和动态库),subdirs(递归编译)。工程类型可以使用TEMPLATE变量来指定。
如: TEMPLATE = app(默认不指定的情况下是app工程)
对于app工程或者lib工程,有以下这些经常使用的变量:
HEADERS:指定C++头文件
SOURCES:指定C++实现文件
FORMS:指定需要uic处理的ui文件
RESOURCES:指定需要rcc处理的qrc文件
DEFINES:指定预定义预处理器符号
INCLUDEPATH:指定C++编译器搜索头文件路径
LIBS:指定工程要链接的库
CONFIG:指定工程配置和编译参数
QT:指定工程所要使用的Qt模块
VERSION:指定目标库版本号
TARGET:指定可执行文件或库的基本文件名,默认为当前目录名
DESTDIR:指定可执行文件放置的目录
DLLDESTDIR:指定目标库文件放置的目录
CONFIG:指定工程配置和编译参数
以下对CONFIG变量做主要介绍:
debug:编译有调试信息的可执行文件或则库
release:编译不具有调试信息可执行文件或者库(如果同时指定debug release时,只有debug有效)
warn_off:关闭大量警告,默认是打开的
qt:指应用程序使用Qt
dll:动态编译库
staticlib:静态编译库
plugin:编译一个插件
console:应用程序需要写控制台
当我们写CONFIG变量时,可以使用
如:CONFIG = qt release warn_off
或者CONFIG = qt
CONFIG += release
CONFIG += warn_off
当想要移除某个设置时:CONFIG -= warn_off
在pro文件里,可以使
{varName}来访问自己定义的变量,如
MyVersion = 1.2
FILE = 1.cpp
TARGET = improve$${MyVersion}
SOURCES = $$FILE
pro文件里,访问环境变量的用法是:$(varName)
pro文件里,访问Qt配置参数的用法:$$[varName]
在不同的编译平台上编译时,需要设定条件。如:
win32{
SOURCES += 1.cpp
}else{
SOURCES += 2.cpp
}
或者
win32:SOURCES += 3.cpp
转自:http://www.cnblogs.com/braver/articles/1935891.html