真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

KS02-05pri文件有啥用?-創(chuàng)新互聯(lián)

版權(quán)聲明

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

創(chuàng)新互聯(lián)建站秉承實(shí)現(xiàn)全網(wǎng)價(jià)值營(yíng)銷(xiāo)的理念,以專(zhuān)業(yè)定制企業(yè)官網(wǎng),成都網(wǎng)站建設(shè)、成都做網(wǎng)站,微信小程序開(kāi)發(fā),網(wǎng)頁(yè)設(shè)計(jì)制作,成都手機(jī)網(wǎng)站制作,營(yíng)銷(xiāo)型網(wǎng)站幫助傳統(tǒng)企業(yè)實(shí)現(xiàn)“互聯(lián)網(wǎng)+”轉(zhuǎn)型升級(jí)專(zhuān)業(yè)定制企業(yè)官網(wǎng),公司注重人才、技術(shù)和管理,匯聚了一批優(yōu)秀的互聯(lián)網(wǎng)技術(shù)人才,對(duì)客戶(hù)都以感恩的心態(tài)奉獻(xiàn)自己的專(zhuān)業(yè)和所長(zhǎng)。

作者: 女兒叫老白

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

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

引言

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

在前面的章節(jié)中我們介紹了pro文件的常用配置。當(dāng)我們進(jìn)行項(xiàng)目研發(fā)時(shí),在各個(gè)子項(xiàng)目的pro中經(jīng)常會(huì)出現(xiàn)重復(fù)配置,為了處理這種問(wèn)題,Qt提供了另外一個(gè)項(xiàng)目配置文件:pri文件。在pri文件里,我們可以編寫(xiě)公共的變量給各個(gè)子項(xiàng)目用,還可以配置各種編譯選項(xiàng)、配置各種路徑。在本節(jié)中,我們將討論一下pri文件都有哪些作用。

正文

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

在本節(jié)中,我們將以常用關(guān)鍵字為線(xiàn)索,介紹pri文件所能起到的各種功能。我們準(zhǔn)備為大家介紹如下關(guān)鍵字:

表02-05-01

關(guān)鍵字

含義

include

在pro中引入其他的pri文件

環(huán)境變量

在pri中使用環(huán)境變量

變量

在pri中定義與使用變量

函數(shù)

pri中提供的常用函數(shù)

unix/win32

配置不同平臺(tái)下的編譯配置項(xiàng)

DEFINES

在pri中定義宏

CONFIG

項(xiàng)目的配置參數(shù)

QMAKE_CXXFLAGS

配置編譯警告

現(xiàn)在,我們來(lái)分別進(jìn)行介紹:

1,? include --- 在pro中引入其他的pri文件

pri文件編寫(xiě)完成之后,可以在項(xiàng)目文件(pro文件)或者其他pri文件中引用。

語(yǔ)法include? (pri文件全路徑名)??

比如:

1.?? ?

include? ($(TRAINDEVHOME)/src/gui_base.pri)

?

注:

1.?? ? 請(qǐng)注意include后面有空格。

2.?? ? pri文件路徑中的目錄分隔符要用"/",請(qǐng)不要使用"\"。

3.?? ? pri文件只能被另一個(gè)pri文件或pro文件引用,不能在.h或.cpp文件中用#include語(yǔ)句進(jìn)行引用。

2,? 環(huán)境變量 --- 在pri中使用環(huán)境變量

有時(shí)候,在項(xiàng)目編譯時(shí)我們會(huì)用到一些環(huán)境變量。比如,將項(xiàng)目編譯為32位還是64位,編譯成debug版還是release版等等。那么,在pri文件中我們?cè)鯓邮褂眠@些環(huán)境變量呢?

??? 語(yǔ)法: $$(環(huán)境變量名稱(chēng))

比如:

1.?? ? ?

2.?? ? ?

include? ($$(TRAINDEVHOME)/src/gui_base.pri)

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

在上述例子中,我們用到了TRAINDEVHOME這個(gè)環(huán)境變量值,分別用來(lái)描述gui_base.pri的文件路徑以及ks02_04項(xiàng)目的OBJECT_DIR配置項(xiàng)的值。

3? 變量與環(huán)境變量 --- 在pri中定義與使用變量、環(huán)境變量

除了環(huán)境變量之外,有時(shí)候?yàn)榱朔奖氵€可以自己定義一些變量。

比如,Qt的isEmpty()函數(shù)不識(shí)別環(huán)境變量,因此我們可以這樣做:

1.?? ? ?

2.?? ? ?

3.?? ? ?

4.?? ? ?

DEVHOME ? = $$(TRAINDEVHOME)

isEmpty(DEVHOME) ? {

error('TRAINDEVHOME'環(huán)境變量必須被定義.)

}

在上述代碼中,因?yàn)閕sEmpty()函數(shù)不識(shí)別環(huán)境變量但是可以識(shí)別我們定義的變量,所以我們定義了DEVHOME變量,這樣isEmpty()就可以根據(jù)TRAINDEVHOME這個(gè)環(huán)境變量的取值進(jìn)行判斷,如果未定義TRAINDEVHOME環(huán)境變量,那么就會(huì)報(bào)錯(cuò)。

使用語(yǔ)法同系統(tǒng)環(huán)境變量不同,變量名不用括號(hào)。

語(yǔ)法:$$變量名

1.?? ? ?

2.?? ? ?

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

OBJECTS_DIR ? = $$TEMPDIR

請(qǐng)注意:

1)? 在一行語(yǔ)句中,所引用的變量或環(huán)境變量的個(gè)數(shù)不能超過(guò)1個(gè),

錯(cuò)誤的寫(xiě)法:

1.?? ? ?

2.?? ? ?

CHAPTER?? = chapter02

TEMPDIR = $$(TRAINDEVHOME)/obj/$$CHAPTER/ks02_04

正確的寫(xiě)法:

1.?? ?

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

2) 使用環(huán)境變量的語(yǔ)法跟使用變量的語(yǔ)法不同(環(huán)境變量名要用括號(hào)):

環(huán)境變量: $$(環(huán)境變量名)

變量:???? $$變量名

4, 函數(shù) ?--- pri中提供的常用函數(shù)

在上面的示例中,我們介紹了isEmpty()函數(shù)、error()函數(shù),實(shí)際上Qt還提供了一些其他函數(shù):

1) ?isEmtpy()?

用來(lái)判斷一個(gè)變量是否為空值,比如:

1.?? ? ?

2.?? ? ?

3.?? ? ?

4.?? ? ?

DEVHOME ? = $$(TRAINDEVHOME)

isEmpty(DEVHOME) {

error('TRAINDEVHOME'環(huán)境變量必須被定義.)

}

2)? equals(a, b)

判斷某個(gè)變量的 值是否與指定值相等,比如:

1.?? ? ?

2.?? ? ?

3.?? ? ?

4.?? ? ?

5.?? ? ?

BUILDTYPE ? = $$(TRAINBUILDTYPE)

equals(BUILDTYPE, debug){

CONFIG += debug

CONFIG -= release

}

3)? error()

用來(lái)輸出錯(cuò)誤信息,并終止當(dāng)前命令,比如:

1.?? ? ?

2.?? ? ?

3.?? ? ?

isEmpty(DEVHOME) ? {

error('TRAINDEVHOME'環(huán)境變量必須被定義.)

}

4)? contains(x, y)

用來(lái)判斷一個(gè)變量x是否包含字符串y,比如下面的配置表示如果TRAIN_QMAKESPEC變量包含” hpux.* ”,則執(zhí)行括號(hào)中的配置:

1.?? ? ?

2.?? ? ?

3.?? ? ?

4.?? ? ?

5.?? ? ?

contains(TRAIN_QMAKESPEC, hpux.* ? ) {

# HPUX下全面支持C++

QMAKE_CXXFLAGS *= -Aa

LIBS += -lrt

}

5, unix/win32? --- 配置不同平臺(tái)下的編譯配置項(xiàng)

1.?? ? ?

2.?? ? ?

3.?? ? ?

4.?? ? ?

5.?? ? ?

6.?? ? ?

7.?? ? ?

8.?? ? ?

9.?? ? ?

unix{

contains( TRAIN_QMAKESPEC, g++ ) {

CONFIG *= precompile_header

}

}

#WIN32下聲明使用預(yù)編譯頭文件

win32{

CONFIG *= precompile_header

}

注:

1.?? ? linux也使用unix配置。

2.?? ? 所有的左括號(hào)“{”,跟起始配置在同一行,不要換行。

6, DEFINES --- 在pri中定義宏

可以根據(jù)需要定義宏定義,這些宏定義可以在源代碼中使用,比如

1.?? ? ?

2.?? ? ?

3.?? ? ?

4.?? ? ?

5.?? ? ?

6.?? ? ?

7.?? ? ?

8.?? ? ?

9.?? ? ?

10.? ?

11.? ?

12.? ?

13.? ?

#UNIX下編譯設(shè)置

unix{

#表示unix或linux操作系統(tǒng)

DEFINES *= unix? __unix

}

#WIN32下編譯設(shè)置

win32{

#表示W(wǎng)INDOWS操作系統(tǒng)

DEFINES *= WIN32

}

equals(BUILDBIT,64){

DEFINES *= TRAIN_64

}

在上述代碼中,在pri中定義的宏定義" unix"、" __unix "、"WIN32"、"TRAIN_64"都可以在代碼中使用,比如:

1.?? ? ?

2.?? ? ?

3.?? ? ?

4.?? ? ?

5.?? ? ?

6.?? ? ?

7.?? ? ?

#ifdef ? ?__unix

……

#endif

#ifdef? TRAIN_64

……

#endif

注:

1.?? DEFINES 后面是 *=,(就是 星號(hào)=),用來(lái)表示累加。

7, CONFIG --- 項(xiàng)目的配置參數(shù)

CONFIG配置項(xiàng)在pri中與pro中用法一樣。

常用的參數(shù):

CONFIG? += console qt debug release thread warn_on

1)? console

表示本應(yīng)用是命令行程序,可以啟動(dòng)一個(gè)終端(命令行)。

2)? qt

表示本應(yīng)用要加載Qt的庫(kù),鏈接時(shí)要鏈接qt類(lèi)庫(kù)。

3)? debug/release

表示程序是debug版本還是release版本。

4)? thread

表示程序是否啟用多線(xiàn)程,如果沒(méi)有thread選項(xiàng),那么程序無(wú)法使用多線(xiàn)程。

5)? warn_on

表示是否顯示編譯警告。個(gè)人建議開(kāi)啟,因?yàn)橛行┚幾g警告還是很重要的。如果不關(guān)注就可能導(dǎo)致程序運(yùn)行時(shí)異常。

8, QMAKE_CXXFLAGS? --- 配置編譯警告

用來(lái)為編譯器指明一些處理標(biāo)志,比如:

1.?? ? ?

2.?? ? ?

3.?? ? ?

4.?? ? ?

# 去掉strcpy等編譯警告

QMAKE_CXXFLAGS ? *= -wd499

# ui 生成的文件使用 utf-8 編碼,編譯時(shí)產(chǎn)生4819 警告,因此去掉

QMAKE_CXXFLAGS ? *= -wd4819

結(jié)語(yǔ)

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

在進(jìn)行項(xiàng)目開(kāi)發(fā)時(shí)經(jīng)常用到pri文件。當(dāng)然,如果您僅僅在編寫(xiě)一個(gè)獨(dú)立的exe模塊,pri文件可能不會(huì)發(fā)揮太大作用,因?yàn)榭梢园裵ri中的配置項(xiàng)直接編寫(xiě)到pro文件中。但是小編還是建議大家養(yǎng)成習(xí)慣,編碼時(shí)要做到標(biāo)準(zhǔn)化。比如建立一套pri文件,這樣在建立新項(xiàng)目時(shí)將會(huì)非常方便,這些內(nèi)容我們將在下一節(jié)介紹?,F(xiàn)在,我們先來(lái)回顧一下本節(jié)的注意事項(xiàng):

1, pri文件路徑中的目錄分隔符要用"/",請(qǐng)不要使用"\"。

2, pri文件只能被pro文件或另一個(gè)pri文件引用。

3, 使用環(huán)境變量的語(yǔ)法跟使用變量的語(yǔ)法不同:

環(huán)境變量: $$(環(huán)境變量名)

變量:???? $$變量名

4, 在pro或pri中,Qt提供了一些函數(shù)來(lái)方便判斷或者輸出信息,比如 isEmpty()、error()等。

5, 在使用CONFIG的配置項(xiàng)進(jìn)行判斷時(shí),所有的左括號(hào)“{”,跟起始配置在同一行,不要換行。

6, 在pri中定義的宏可以在代碼中使用

好了,總結(jié)就到這里,祝大家編程愉快。

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

《Qt入門(mén)與提高-GUI產(chǎn)品開(kāi)發(fā)》目錄請(qǐng)?zhí)砑渔溄用枋?br />上一節(jié):KS02-04 pro文件常用配置
下一節(jié):KS02-06 一勞永逸:引入pri體系

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。


網(wǎng)站欄目:KS02-05pri文件有啥用?-創(chuàng)新互聯(lián)
當(dāng)前鏈接:http://weahome.cn/article/dpopjj.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部