KS02-04pro文件常用配置-创新互联

版权声明

----------------------------------------------------------------

创新互联长期为近1000家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为门头沟企业提供专业的成都网站建设、网站设计,门头沟网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。

作者: 女儿叫老白

转载请注明出处!

网页版课程源码 提取码:1uy7

引言

----------------------------------------------------------------

在前面章节我们通过一个exe的例子介绍了pro文件的基本配置,本节来看一下pro文件的一些常用配置。

正文

----------------------------------------------------------------

1.   exe还是dll---TEMPLATE

我们开发的程序要么是exe程序、要么是dll程序,这由啥来决定呢?首先来介绍一下TEMPLATE配置项。该配置项用来确定我们生成的程序是exe还是dll。

TEMPLATE     = app # 表示本项目生成一个exe

TEMPLATE     = lib  # 表示本项目生成一个dll。

TEMPLATE     = subdirs  # 表示本项目将扫描指定的子目录集合并执行相关操作。

      # 经常与SUBDIRS参数配合使用。

      # 比如指定需要翻译的子目录列表时,可以用该配置。

2.   用什么开发语言呢---LANGUAGE

语法:LANGUAGE =C++

表示本项目用C++语言开发。

注意: C要大写。

3.   生成的模块名称---TARGET

语法:TARGET = xxx

表示本项目生成的程序的名字为xxx。

比如,根据TEMPLATE参数,如果WINDOWS上生成的是prog.exe或者prog.dll,或者在LINUX上生成的是prog(exe文件名)或者libprog.so.1.0.0(dll文件名),都可以用:

TARGET= prog

4.   debug还是release---CONFIG

语法:CONFIG  +=  xxx  xxx  xxx

表示增加某些CONFIG配置项,中间用空格区分。

语法:CONFIG  -=  xxx  xxx  xxx

表示删除某些CONFIG配置项。

常见参数介绍:

release

以release版本构建。如果也指定debug,最后一个生效。可以用+/-进行控制,如CONFIG -= release, CONFIG+=release

debug

项目以debug模式构建。可以用+/-进行控制。

debug_and_release

项目以debug和release两种模式构建。即编译时同时生成debug何release版本的目标程序。

precompile_header

可以在项目中使用预编译头文件。

rtti

启用RTTI支持。默认使用编译器默认值(具体跟编译器有关)。关闭用rtti_off。

stl

启用STL支持。默认使用编译器默认值(具体跟编译器有关)。关闭用stl_off。

thread

启用线程支持。当CONFIG包括qt时启用。thread是缺省设置。

warn_on

编译器应该输出尽可能多的警告。如果也指定了warn_off,最后一个生效。

warn_off

编译器应该输出尽可能少的警告。

qt

表示需要链接qt的库。一般使用Qt类库时需要该配置项,开发服务模块时,如果只是用Qt的pro文件来组织项目并编译,一般会使用其他类库或者自行编写类库,所以编写服务模块时一般不用qt(写成:CONFIG -= qt)。

c++11

启用c++11支持。如果编译器不支持c++11这个选项,没有影响。默认不支持c++11。

c++14

启用c++14支持。如果编译器不支持c++14这个选项,没有影响。默认不支持c++14。

5.   使用qt的哪些模块---QT

语法:QT +=  xxx  xxx xxx

表示增加某些QT配置项,各个配置项之间用空格隔开。

语法:QT -=  xxx  xxx xxx

表示删除某些QT配置项。

指定项目中使用Qt的模块。默认情况下,QT包含core和gui这两个模块,以确保标准的GUI应用程序无需进一步的配置就可以构建。

如果想建立一个不包含Qt GUI模块的项目,可以使用“ -=”操作符。

下面一行将构建一个不带gui的Qt项目:

1.    

QT  -=    gui  # 仅仅使用core模块

如果要创建一个界面(widget),而且要用到XML及网络相关的类,那么需要包含如下模块:

1.    

QT +=   widgets xml network

请注意,如果您需要用到ui文件,请务必配置QT+= widgets,否则编译时将无法通过uic处理ui文件(无法生成ui文件对应的.h头文件),将导致编译失败。

6.   各种DIR | 各种PATH

DEPENDPATH

指定查看解决依赖关系的目录列表,当包含文件时使用:

1.    

DEPENDPATH   += .  forms include  qrc    sources

其中"."表示当前目录。

INCLUDEPATH

指定编译项目时应该被搜索的include目录,比如:

1.    

INCLUDEPATH   = $$(TRAINDEVHOME)/include

这里使用了环境变量TRAINDEVHOME,引用环境变量时要写成$$(TRAINDEVHOME)的样子。关于环境变量的使用将在下节详细介绍。

这里需要注意的是,如果项目中包含资源 (.ui) 文件,那么应该将$$UI_DIR添加到INCLUDEPATH中,这需要提前定义UI_DIR的值:

1.      

2.      

3.      

UI_DIR = $(TRAINDEVHOME)/obj/demo/dialog/ui

INCLUDEPATH   += $$(TRAINDEVHOME)/include \

$$UI_DIR

DESTDIR:

指定目标文件的存放位置,也就是项目生成的exe或dll的存放目录。 比如下述语句指明了一个dll项目的目标程序的存放位置:

1.    

DESTDIR   = ../../lib

 

MOC_DIR:

指定来自moc的所有中间文件放置的目录(含Q_OBJECT宏的头文件转换成标准.h头文件的存放目录)。比如:

1.    

MOC_DIR   = $$(TRAINDEVHOME)/obj/moc

   

OBJECTS_DIR:

指定所有中间文件.o(.obj)的存放目录,比如:

1.    

OBJECTS_DIR   = $$(TRAINDEVHOME)/obj/chapter02/ks02_04

 

RCC_DIR:

指定Qt资源编译器输出文件的目录(.qrc文件转换成qrc_*.h头文件的存放目录),比如:

1.    

RCC_DIR   =$$(TRAINDEVHOME)/obj/chapter02/ks02_04/resources

 

UI_DIR:

指定qt的uic命令转换ui文件得到的所有中间文件放置的目录(.ui文件转化成ui_*.h头文件的存放目录),比如:

1.    

UI_DIR   =$$(TRAINDEVHOME)/obj/chapter02/ks02_04/ui

7.   FORMS

指定项目使用的ui文件。这些ui文件在编译前将被qt的uic命令处理。所有的构建这些ui文件所需的依赖、头文件和源文件都会自动被添加到项目中。

1.      

2.      

FORMS   = mydlg.ui \

login.ui

8.   HEADERS

指定项目用到的头文件,比如:

1.      

2.      

3.      

4.      

HEADERS   = abc.pro \

myfile.h \

../../comdll/mycom.h \

$$(TRAINDEVHOME)/include/base.h

注:

1.     将pro文件添加到HEADERS是为了方便,这样就可以在VisualStudio工具中直接找到pro文件,而无需到资源管理器查找。

2.     可以用相对路径的语法,比如:../../comdll/mycom.h

3.     可以使用环境变量,比如: $$(TRAINDEVHOME)/include/base.h

4.     使用”\”进行换行。"\"前加一个空格。

9.   SOURCES

项目用到的cpp文件,语法、注意点同HEADERS。

10.  RESOURCES

项目用到的资源文件 (qrc) 的名称,比如:

1.    

RESOURCES   += mdi.qrc

11.  LIBS

指定链接到项目中的库列表。使用-l(小写的L)和-L两种语法。

-l(小写的L)

表示库文件名,比如,下面的语句表示链接到库文件mycomm。

1.    

LIBS  += -lmycomm

-L

表示库文件所在的路径,比如,下面的语句表示库文件所在目录为:

/usr/local/myprogram/lib,链接的库文件为mycomm、fesp。

1.      

2.      

3.      

LIBS  += -L/usr/local/myprogram/lib \

       -lmcomm \

       -lfesp

12.  TRANSLATIONS

指定包含用户界面翻译文本的翻译(.ts)文件列表,比如:

#xxxfortranslations.pro

1.    

TRANSLATIONS =translations/graphplatform_zh_CN.ts

该配置将被lupdate命令读取(如下,手工执行该命令),生成的ts文件就保存在TRANSLATIONS所指向的文件名。

lupdate   xxxfortranslations.pro 

13.  SUBDIRS

同template=subdirs配合使用。

该配置指出本项目包含的子目录,可以用来扫描生成翻译文件,或者级联生成整个项目的Makefile。

1.      

2.      

3.      

4.      

5.      

6.      

7.      

template=subdirs

SUBDIRS    = \

esfc   \

common \

phcore \

phwidget

如果pro包含上述内容,那么对该pro执行qmake时,qt会自动进入SUBDIRS所包含的各个子目录,分别执行qmake。

 

注:

1.   修改pro或pri文件后,务必重新执行qmake或qmake –tp vc,以便更新Makefile或者VisualStudio的项目文件(.vcxproj)

结语

----------------------------------------------------------------

本节,我们给大家介绍了pro文件常用的一些配置,内容稍微有点多。读者需要通过多加练习慢慢掌握。练习时,读者可以尝试修改配置项的值通过观察效果来加深理解。

----------------------------------------------------------------

《Qt入门与提高-GUI产品开发》目录
上一节:K02-03加点料-增加一张图片
下一节:KS02-05 pri 文件有啥用?

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章标题:KS02-04pro文件常用配置-创新互联
文章地址:http://pcwzsj.com/article/dcsooe.html