Qt Pro檔案的qmake關鍵字整理
阿新 • • 發佈:2022-04-01
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