QMake學習


原文:https://www.cnblogs.com/vkang/articles/10237033.html

https://www.iteye.com/blog/wan-2004-1258380

 

qmake的pro文件中有這個變量QMAKE_EXTRA_TARGETS 這個可以理解為額外編譯目標、還有PRE_TARGETDEPS可以理解為預編譯目標依賴 ,比如下面這個

mybuild.target=mybuild  
  
win32{  
mybuild.commands=${COPY} ../project/libname-mingw.a libname.a  
}else{  
mybuild.commands=${COPY} ../project/libname-gcc.a libname.a  
}  
  
QMAKE_EXTRA_TARGETS += mybuild  
  
PRE_TARGETDEPS += mybuild 

像上面這個就是定義了一個在Makefile中的一個編譯目標mybuild

    然后make的時候,在我們編譯目標文件之前就執行mybuild。這樣就保證了編譯時候庫文件就拷貝到編譯目錄里面。

不需要在QCreator里面設置編譯步驟去拷貝了,其commands 里面還可以直接調用本地腳本執行更多的方法

 

TARGET:
編譯生成的目標文件名字
ex:
TARGET = test

DESTDIR
生成的文件目錄
ex:
DESTDIR = /home/linux/Vkang/tftproot

QMAKE_CXXFLAGS
編譯器選項
ex:
QMAKE_CXXFLAGS += -Wno-psabi

DEFINES:
編譯添加宏
ex:
DEFINES += QT_DEPRECATED_WARNINGS

contains:
包含某個字符:
ex:
contains(CONFIG,ARM)

{

functions

}

message:
打印信息:
ex:
message("****** build for ARM - Release ******")

PRE_TARGETDEPS:
工程構建前的依賴
ex:PRE_TARGETDEPS += buildnumber version.h

QMAKE_EXTRA_TARGETS:
工程運行前執行的其他命令:
ex:
QMAKE_EXTRA_TARGETS += updateBuildNumber updateVersion

{
PRE_TARGETDEPS和QMAKE_EXTRA_TARGETS結合使用,在構建工程前執行的指令

updateBuildNumber.target=buildnumber //target名字
updateBuildNumber.depends=FORCE//target依賴
updateBuildNumber.commands=$$PWD/script/updatebuildnumber.sh $$PWD //target執行的指令

updateVersion.target=version.h//target名字
updateVersion.depends=buildnumber//target依賴
updateVersion.commands=$$PWD/script/updateversion.sh $$PWD//target執行的指令

PRE_TARGETDEPS += buildnumber version.h //工程構建前的依賴 上邊的target名字
QMAKE_EXTRA_TARGETS += updateBuildNumber updateVersion

工程在構建之前會先執行buildnumber對應的指令,然后在執行version.h對應的指令
}

POST_TARGETDEPS :
工程構建后依賴動作:
ex:
copy_deps.target=copy
copy_deps.depends=FORCE
copy_deps.command = copy.sh
POST_TARGETDEPS += copy
QMAKE_EXTRA_TARGETS += copy_deps

LIBS:
工程編譯依賴的庫:
ex:
LIBS += -L/user/lib -lts

INCLUDEPATH:
工程編譯頭文件查找路徑
ex:
INCLUDEPATH += $$PWD/video


include():
此工程包含該pri文件
ex:
include($$PWD/video/video.pri)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM