KS02-04pro文件常用配置

版權(quán)聲明

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

創(chuàng)新互聯(lián)公司是一家以網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)、品牌設(shè)計(jì)、軟件運(yùn)維、成都網(wǎng)站營(yíng)銷(xiāo)、小程序App開(kāi)發(fā)等移動(dòng)開(kāi)發(fā)為一體互聯(lián)網(wǎng)公司。已累計(jì)為成都樓梯護(hù)欄等眾行業(yè)中小客戶提供優(yōu)質(zhì)的互聯(lián)網(wǎng)建站和軟件開(kāi)發(fā)服務(wù)。

作者: 女兒叫老白

轉(zhuǎn)載請(qǐng)注明出處!

網(wǎng)頁(yè)版課程源碼 提取碼:1uy7


引言

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

在前面章節(jié)我們通過(guò)一個(gè)exe的例子介紹了pro文件的基本配置,本節(jié)來(lái)看一下pro文件的一些常用配置。

?

正文

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

1.??exe還是dll---TEMPLATE

我們開(kāi)發(fā)的程序要么是exe程序、要么是dll程序,這由啥來(lái)決定呢?首先來(lái)介紹一下TEMPLATE配置項(xiàng)。該配置項(xiàng)用來(lái)確定我們生成的程序是exe還是dll。

TEMPLATE???? = app #表示本項(xiàng)目生成一個(gè)exe

TEMPLATE???? = lib? #表示本項(xiàng)目生成一個(gè)dll。

TEMPLATE???? = subdirs? #表示本項(xiàng)目將掃描指定的子目錄集合并執(zhí)行相關(guān)操作。

?????????????????????? #經(jīng)常與SUBDIRS參數(shù)配合使用。

?????????????????????? #比如指定需要翻譯的子目錄列表時(shí),可以用該配置。

?

2.??用什么開(kāi)發(fā)語(yǔ)言呢---LANGUAGE

語(yǔ)法:LANGUAGE =C++

表示本項(xiàng)目用C++語(yǔ)言開(kāi)發(fā)。

注意: C要大寫(xiě)。

?

3.??生成的模塊名稱---TARGET

語(yǔ)法:TARGET = xxx

表示本項(xiàng)目生成的程序的名字為xxx。

比如,根據(jù)TEMPLATE參數(shù),如果WINDOWS上生成的是prog.exe或者prog.dll,或者在LINUX上生成的是prog(exe文件名)或者libprog.so.1.0.0(dll文件名),都可以用:

TARGET= prog

?

4.??debug還是release---CONFIG

語(yǔ)法:CONFIG? +=? xxx? xxx? xxx

表示增加某些CONFIG配置項(xiàng),中間用空格區(qū)分。

語(yǔ)法:CONFIG? -=? xxx? xxx? xxx

表示刪除某些CONFIG配置項(xiàng)。

常見(jiàn)參數(shù)介紹:

release

以release版本構(gòu)建。如果也指定debug,最后一個(gè)生效??梢杂?/-進(jìn)行控制,如CONFIG -= release, CONFIG+=release

debug

項(xiàng)目以debug模式構(gòu)建。可以用+/-進(jìn)行控制。

debug_and_release

項(xiàng)目以debug和release兩種模式構(gòu)建。即編譯時(shí)同時(shí)生成debug何release版本的目標(biāo)程序。

precompile_header

可以在項(xiàng)目中使用預(yù)編譯頭文件。

rtti

啟用RTTI支持。默認(rèn)使用編譯器默認(rèn)值(具體跟編譯器有關(guān))。關(guān)閉用rtti_off。

stl

啟用STL支持。默認(rèn)使用編譯器默認(rèn)值(具體跟編譯器有關(guān))。關(guān)閉用stl_off。

thread

啟用線程支持。當(dāng)CONFIG包括qt時(shí)啟用。thread是缺省設(shè)置。

warn_on

編譯器應(yīng)該輸出盡可能多的警告。如果也指定了warn_off,最后一個(gè)生效。

warn_off

編譯器應(yīng)該輸出盡可能少的警告。

qt

表示需要鏈接qt的庫(kù)。一般使用Qt類(lèi)庫(kù)時(shí)需要該配置項(xiàng),開(kāi)發(fā)服務(wù)模塊時(shí),如果只是用Qt的pro文件來(lái)組織項(xiàng)目并編譯,一般會(huì)使用其他類(lèi)庫(kù)或者自行編寫(xiě)類(lèi)庫(kù),所以編寫(xiě)服務(wù)模塊時(shí)一般不用qt(寫(xiě)成:CONFIG -= qt)。

c++11

啟用c++11支持。如果編譯器不支持c++11這個(gè)選項(xiàng),沒(méi)有影響。默認(rèn)不支持c++11。

c++14

啟用c++14支持。如果編譯器不支持c++14這個(gè)選項(xiàng),沒(méi)有影響。默認(rèn)不支持c++14。

?

5.??使用qt的哪些模塊---QT

語(yǔ)法:QT +=? xxx? xxx xxx

表示增加某些QT配置項(xiàng),各個(gè)配置項(xiàng)之間用空格隔開(kāi)。

語(yǔ)法:QT -=? xxx? xxx xxx

表示刪除某些QT配置項(xiàng)。

指定項(xiàng)目中使用Qt的模塊。默認(rèn)情況下,QT包含core和gui這兩個(gè)模塊,以確保標(biāo)準(zhǔn)的GUI應(yīng)用程序無(wú)需進(jìn)一步的配置就可以構(gòu)建。

如果想建立一個(gè)不包含Qt GUI模塊的項(xiàng)目,可以使用“ -=”操作符。

下面一行將構(gòu)建一個(gè)不帶gui的Qt項(xiàng)目:

1.???

QT? -=? ? gui? #僅僅使用core模塊

如果要?jiǎng)?chuàng)建一個(gè)界面(widget),而且要用到XML及網(wǎng)絡(luò)相關(guān)的類(lèi),那么需要包含如下模塊:

1.???

QT += ? widgets xml network

請(qǐng)注意,如果您需要用到ui文件,請(qǐng)務(wù)必配置QT+= widgets,否則編譯時(shí)將無(wú)法通過(guò)uic處理ui文件(無(wú)法生成ui文件對(duì)應(yīng)的.h頭文件),將導(dǎo)致編譯失敗。

?

6.??各種DIR | 各種PATH

DEPENDPATH

指定查看解決依賴關(guān)系的目錄列表,當(dāng)包含文件時(shí)使用:

1.???

DEPENDPATH ? += .? forms include? qrc? ? sources

其中"."表示當(dāng)前目錄。

INCLUDEPATH

指定編譯項(xiàng)目時(shí)應(yīng)該被搜索的include目錄,比如:

1.???

INCLUDEPATH ? = $$(TRAINDEVHOME)/include

這里使用了環(huán)境變量TRAINDEVHOME,引用環(huán)境變量時(shí)要寫(xiě)成$$(TRAINDEVHOME)的樣子。關(guān)于環(huán)境變量的使用將在下節(jié)詳細(xì)介紹。

這里需要注意的是,如果項(xiàng)目中包含資源 (.ui) 文件,那么應(yīng)該將$$UI_DIR添加到INCLUDEPATH中,這需要提前定義UI_DIR的值:

1.?? ??

2.?? ??

3.?? ??

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

INCLUDEPATH ? += $$(TRAINDEVHOME)/include \

?????????????? ?$$UI_DIR

?

DESTDIR:

指定目標(biāo)文件的存放位置,也就是項(xiàng)目生成的exe或dll的存放目錄。 比如下述語(yǔ)句指明了一個(gè)dll項(xiàng)目的目標(biāo)程序的存放位置:

1.???

DESTDIR ? = ../../lib

?

MOC_DIR:

指定來(lái)自moc的所有中間文件放置的目錄(含Q_OBJECT宏的頭文件轉(zhuǎn)換成標(biāo)準(zhǔn).h頭文件的存放目錄)。比如:

1.???

MOC_DIR ? = $$(TRAINDEVHOME)/obj/moc

???

OBJECTS_DIR:

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

1.???

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

?

RCC_DIR:

指定Qt資源編譯器輸出文件的目錄(.qrc文件轉(zhuǎn)換成qrc_*.h頭文件的存放目錄),比如:

1.???

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

?

UI_DIR:

指定qt的uic命令轉(zhuǎn)換ui文件得到的所有中間文件放置的目錄(.ui文件轉(zhuǎn)化成ui_*.h頭文件的存放目錄),比如:

1.???

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

?

7.??FORMS

指定項(xiàng)目使用的ui文件。這些ui文件在編譯前將被qt的uic命令處理。所有的構(gòu)建這些ui文件所需的依賴、頭文件和源文件都會(huì)自動(dòng)被添加到項(xiàng)目中。

1.?? ??

2.?? ??

FORMS ? = mydlg.ui \

??????? login.ui

?

8.??HEADERS

指定項(xiàng)目用到的頭文件,比如:

1.?? ??

2.?? ??

3.?? ??

4.?? ??

HEADERS ? = abc.pro \

????????? myfile.h \

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

????????? $$(TRAINDEVHOME)/include/base.h

注:

1.?? ?將pro文件添加到HEADERS是為了方便,這樣就可以在VisualStudio工具中直接找到pro文件,而無(wú)需到資源管理器查找。

2.?? ?可以用相對(duì)路徑的語(yǔ)法,比如:../../comdll/mycom.h

3.?? ?可以使用環(huán)境變量,比如: $$(TRAINDEVHOME)/include/base.h

4.?? ?使用”\”進(jìn)行換行。"\"前加一個(gè)空格。

?

9.??SOURCES

項(xiàng)目用到的cpp文件,語(yǔ)法、注意點(diǎn)同HEADERS。

?

10.?RESOURCES

項(xiàng)目用到的資源文件 (qrc) 的名稱,比如:

1.???

RESOURCES ? += mdi.qrc

?

11.?LIBS

指定鏈接到項(xiàng)目中的庫(kù)列表。使用-l(小寫(xiě)的L)和-L兩種語(yǔ)法。

-l(小寫(xiě)的L)

表示庫(kù)文件名,比如,下面的語(yǔ)句表示鏈接到庫(kù)文件mycomm。

1.???

LIBS? += -lmycomm

?

-L

表示庫(kù)文件所在的路徑,比如,下面的語(yǔ)句表示庫(kù)文件所在目錄為:

/usr/local/myprogram/lib,鏈接的庫(kù)文件為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命令讀取(如下,手工執(zhí)行該命令),生成的ts文件就保存在TRANSLATIONS所指向的文件名。

lupdate ? xxxfortranslations.pro?

?

13.?SUBDIRS

?同template=subdirs配合使用。

?該配置指出本項(xiàng)目包含的子目錄,可以用來(lái)掃描生成翻譯文件,或者級(jí)聯(lián)生成整個(gè)項(xiàng)目的Makefile。

1.?? ??

2.?? ??

3.?? ??

4.?? ??

5.?? ??

6.?? ??

7.?? ??

template=subdirs

?

SUBDIRS??? = \

??????????? esfc?? \

??????????? common \

??????????? phcore \

??????????? phwidget

如果pro包含上述內(nèi)容,那么對(duì)該pro執(zhí)行qmake時(shí),qt會(huì)自動(dòng)進(jìn)入SUBDIRS所包含的各個(gè)子目錄,分別執(zhí)行qmake。

?

注:

1.??修改pro或pri文件后,務(wù)必重新執(zhí)行qmake或qmake –tp vc,以便更新Makefile或者VisualStudio的項(xiàng)目文件(.vcxproj)

?

結(jié)語(yǔ)

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

本節(jié),我們給大家介紹了pro文件常用的一些配置,內(nèi)容稍微有點(diǎn)多。讀者需要通過(guò)多加練習(xí)慢慢掌握。練習(xí)時(shí),讀者可以嘗試修改配置項(xiàng)的值通過(guò)觀察效果來(lái)加深理解。

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

《Qt入門(mén)與提高-GUI產(chǎn)品開(kāi)發(fā)》目錄
上一節(jié):K02-03加點(diǎn)料-增加一張圖片
下一節(jié):KS02-05 pri 文件有啥用?

網(wǎng)站題目:KS02-04pro文件常用配置
標(biāo)題URL:http://bm7419.com/article2/giggoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、自適應(yīng)網(wǎng)站、網(wǎng)站營(yíng)銷(xiāo)、App開(kāi)發(fā)、商城網(wǎng)站企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)