1. 程式人生 > 其它 >Qt Pro檔案的qmake關鍵字整理

Qt Pro檔案的qmake關鍵字整理

1.DESTDIR

用於致命編譯的目標檔案的輸出路徑。

win32{
    DESTDIR = ../../Lib/WIN32
}
unit{
  DESTDIR = ../../Lib/unix
}

2.TARGET

目標名稱。不包括字尾名。字尾名會根據TEMPLATE,平臺自動增加。

如果需要我除錯版本的庫檔案增加d字尾,那麼可以用如下方法:

CONFIG(debug,debug|release){
    TARGET = $$join(TARGET,,,d)
}

3.TEMPLATE

專案模版,一般在建立時QtCreatorhi自動幫你寫入對應的引數

app-建立一個應用程式的makefile。這是預設值,所以如果模版沒有被指定,這個將被使用。
lib
-建立一個庫的makefile。 vcapp-建立一個庫的Visual Studio專案檔案。 subdirs-這是一個特殊的模版,它可以建立一個能夠進入特定目錄並且為一個專案檔案生成makefile並且為它呼叫make的makefile。

4.INCLUDEPATH

標頭檔案搜尋路徑

5.CONFIG

配置變數指定了編譯器索要使用的選項和所需要被連線的庫。配置變數中可以新增任何東西,但只有下面這些選項可以被qmake識別。

release-引用程式將以release模式連編。如果“debug”被指定,他將被忽略。
debug-應用程式將以debug模式連編。
warn_on-編譯器會輸入儘可能多的警告資訊。如果“warn_off”被指定,它將被忽略。

下面這些選項定義了索要連編的庫/應用程式的型別

qt-應用程式是一個Qt應用程式,並且Qt庫將會被連線。
thread-應用程式是一個多執行緒應用程式。
x11-應用程式是一個X11應用程式或庫。
windows-只用於“app”模版:應用程式是一個Windows下的視窗應用程式。
console-只用於“app”模版:應用程式是一個Windows下的控制檯應用程式。
dll-只用於“lib”模版:庫是一個共享庫。
staticlib-值用於“lib”模版:庫是一個靜態庫。
plugin-只用於“lib”模版:庫是一個外掛,這將會使dll選項生效。

例如,如果你的應用程式使用Qt庫,並且你想把它連編為一個可除錯的多執行緒應用程式,你的專案檔案應該會有西面這樣:

CONFIG += qt thread debug

6.其它關鍵字

HEADERS-應用程式中的所有標頭檔案的列表。
SOURCES-應用程式中的所有源我那件的列表。
FORMS-應用程式中的所有.ui檔案(由Qt設計器生成)的列表。
LEXSOURCES:應用程式中的所有lex原始檔的列表。
YACCSOURCES-應用程式中所有yacc原始檔的列表。

DEPENDPATH-用用程式所依賴的搜尋路徑。
VPATH-尋找補充檔案的搜尋路徑。
RC_FILE-只有Windows需要:應用程式的資原始檔。
RES_FILE-只有Windows需要:應用程式索要連線的資原始檔。

7.qmake操作符

“=”操作符      分配一個值給一個變數
“+=”操作符     向一個變數的值的列表中新增一個值
“-=”操作符      從一個變數的值的列表中移去一個值
“*=”操作符      僅僅在一個值不存在於一個變數的值的列表中的時候,把它新增進去
“~=”操作符      替換任何與指定的值的正則表示式匹配的任何值 DEFINES ~= s/QT_[DT].+/QT

8.內建函式

join函式

join(variablename,glue,before,after)這將會在variablename的各個值中間加入glue。
如果這個變數的值為非空,那麼就會在值的前面加一個字首before和一個字尾after。
只有variablename是必須的欄位,其它預設情況下為空串。如果你需要在glue、before或者after中使用空格的話,你必須提供它們。

member函式

member(variablename,position)這將會放置variablename的列表中的position位置的值。
如果variablename不夠長,這將會返回一個空串。
variablename是唯一必須的欄位,如果沒有指定位置,則預設為列表中的第一個值。

find函式

find(variablename,substr)這將會放置variablename中所有匹配substr的值。
substr也可以是正則表示式,而因此將被匹配。

 

“=”操作符      分配一個值給一個變數
“+=”操作符     向一個變數的值的列表中新增一個值
“-=”操作符      從一個變數的值的列表中移去一個值
“*=”操作符      僅僅在一個值不存在於一個變數的值的列表中的時候,把它新增進去
“~=”操作符      替換任何與指定的值的正則表示式匹配的任何值 DEFINES ~= s/QT_[DT].+/QT