中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

KS02-04 pro文件常用配置

發布時間:2020-03-18 05:09:08 來源:網絡 閱讀:520 作者:女兒叫老白 欄目:編程語言

版權聲明

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

作者: 女兒叫老白

轉載請注明出處!

網頁版課程源碼 提取碼: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 文件有啥用?

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

伊宁县| 肥城市| 营山县| 洪江市| 宜昌市| 海城市| 东阳市| 宜兰县| 景东| 肥东县| 澄江县| 望城县| 蓝山县| 明光市| 富蕴县| 马鞍山市| 兴隆县| 成都市| 安国市| 合江县| 曲周县| 隆子县| 许昌市| 鄂温| 龙江县| 广宁县| 惠水县| 乐都县| 禹州市| 从化市| 工布江达县| 琼结县| 哈巴河县| 紫云| 密山市| 于田县| 绵阳市| 岳普湖县| 阿勒泰市| 康马县| 娱乐|