Qt解读之qmake手册

来源:互联网 发布:算法有穷性是指 编辑:程序博客网 时间:2024/06/03 17:41
出处:http://qtlinux.blog.51cto.com/3052744/1392458

一.什么是qmake,以及它的用途

   概念:qmake是一个简化编译程序的工具软件,适用于各个系统平台。

   作用:生成makefile。根据pro文件,很少信息就能生成makefile.

   用法:

1
qmake -o Makefile hello.pro //生成hello.pro工程的makefile

二.qmake基本用法举例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
CONFIG += debug        //编写调试版的程序
HEADERS += hello.h     //把头文件包含进工程文件
SOURCES += hello.cpp   //把代码文件编写进工程文件
SOURCES += main.cpp
//针对不同的平台使用不同的文件
//解决不同平台下的差异性
win32 {
    SOURCES += hellowin.cpp
}
unix {
    SOURCES += hellounix.cpp
}
//若有文件不存在,报错,如下main.cpp不存在
!exists( main.cpp ) {
    error( "No main.cpp file found" )
}
//使用控制台输出调试信息
win32:debug {
    CONFIG += console
}

三.解读工程文件中的标签

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
第一种常用方式:
#模块设置,一般设置为app(生成应用程序,默认),
#subdirs(生成makefile文件编译subdirs指定的子文件夹)
#lib(生成库文件)
TEMPLATE = app
#指定生成的应用程序放置的目录
DESTDIR += ../bin
#指定生成的应用程序名
TARGET = pksystem
#添加或减少CONFIG的配置模块,一般采用默认即可,但是除去debug_and_release模块不会生成debug和release文件夹
#CONFIG += release
CONFIG -= debug_and_release
#指定uic命令将.ui文件转化成ui_*.h文件的存放的目录
UI_DIR += forms
#指定rcc命令将.qrc文件转换成qrc_*.h文件的存放目录
RCC_DIR += ../tmp
#指定moc命令将含Q_OBJECT的头文件转换成标准.h文件的存放目录
MOC_DIR += ../tmp
#指定目标文件的存放目录
OBJECTS_DIR += ../tmp
#程序编译时依赖的相关路径
DEPENDPATH += . forms include qrc sources
#头文件包含路径
INCLUDEPATH += .
#qmake时产生的信息,$${a}读取变量a的字符串,$$(PATH)读取环境变量PATH
#message($$(PATH))
#源文件编码方式
CODECFORSRC = GBK
# Input
#工程中包含的头文件
HEADERS += include/painter.h
#工程中包含的.ui设计文件
FORMS += forms/painter.ui
#工程中包含的源文件
SOURCES += sources/main.cpp sources/painter.cpp
#工程中包含的资源文件
RESOURCES += qrc/painter.qrc
第二种常用方式,用于子文件夹的编译:
#设定模块为子文件夹编译方式
TEMPLATE = subdirs
#子文件夹目录,可用\换行
SUBDIRS = src1 \
          src2

四.Qt引用第三方库的方法

1
2
LIBS += -L/usr/local/lib -lmath //链接第三方库
INCLUDEPATH = c:/msdev/include d:/stl/include  //指定头文件位置

五.工程配置参数config

1
2
3
4
5
6
7
8
9
10
CONFIG:指定工程配置和编译参数
以下对CONFIG变量做主要介绍:
debug:编译有调试信息的可执行文件或则库
release:编译不具有调试信息可执行文件或者库(如果同时指定debug release时,只有debug有效)
warn_off:关闭大量警告,默认是打开的
qt:指应用程序使用Qt
dll:动态编译库
staticlib:静态编译库
plugin:编译一个插件
console:应用程序需要写控制台

使用方法

1
CONFIG = qt release warn_off
0 0
原创粉丝点击