首頁 > 軟體

QT .pro檔案使用解析

2022-04-12 13:01:21

1.pro檔案的作用

QT工程的pro檔案,在建立工程時由QTCreater自動建立,我們可以往裡面新增內容,增加庫檔案的宣告,包含路徑、前處理器定義,生成目錄,輸出中間目錄等等設定。

2.一個簡單的範例

QT+= core gui charts
 
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
 
TARGET = qcharts
TEMPLATE = app
 
DEFINES += QT_DEPRECATED_WARNINGS
 
SOURCES += 
        main.cpp 
        mainwindow.cpp 
    mylineseries.cpp 
    myvalueaxis.cpp
 
HEADERS += 
        mainwindow.h 
    mylineseries.h 
    myvalueaxis.h
 
FORMS += 
        mainwindow.ui 
    mylineseries.ui 
    myvalueaxis.ui
  • QT:指定所要使用的Qt模組
  • TARGET:指定編譯後生成的目標檔名稱
  • TEMPLATE:指定編譯後生成app 還是 lib
  • DEFINES:預定義前處理器符號
  • SOURCES:當前工程中的C++原始檔
  • HEADERS:當前工程中的C++標頭檔案
  • FORMS:當前工程中的ui檔案

以上是一個簡單的範例所用到的設定選項。還有一些常用的別的設定選項如下。

  • VERSION:目標庫版本號
  • DESTDIR:指定最終檔案生成的目錄
  • UI_DIR:UIC將ui轉化為標頭檔案所存放的目錄
  • RCC_DIR:RCC將qrc檔案轉化為標頭檔案所存放的目錄
  • MOC_DIR:MOC命令將含Q_OBJECT的標頭檔案轉換為標準的標頭檔案存放的目錄
  • RC_FILE:程式中所用到的圖片等資原始檔
  • LIBS:指定工程要連結的庫路徑
  • INCLUDEPATH:指定工程要載入的標頭檔案路徑
  • CONFIG:工程設定和編譯的引數
  • LIBPATH:指定工程要連結的庫路徑
  • INSTALLS:指定make install後程式的目錄

3.指定連結的三方庫

CONFIG(debug, release|debug){
  win32:QCPLIB = qcustomplotd2
  else: QCPLIB = qcustomplotd
} else {
  win32:QCPLIB = qcustomplot2
  else: QCPLIB = qcustomplot
}
 
INCLUDEPATH += ../thirdPart
LIBS += -L../thirdPart -l$$QCPLIB

也可以這樣寫

CONFIG(debug, release|debug){
  win32:QCPLIB = qcustomplotd2
  else: QCPLIB = qcustomplotd
} else {
  win32:QCPLIB = qcustomplot2
  else: QCPLIB = qcustomplot
}
 
INCLUDEPATH += ../thirdPart
LIBPATH += ../thirdPart
LIBS += -l$$QCPLIB

4.編譯為庫

4.1靜態庫

TEMPLATE = lib 
CONFIG += staticlib

4.2動態庫

去掉CONFIG += staticlib這一行

5.指定debug,release,win32平臺還是別的平臺

省略號,自己補足內容

CONFIG(debug, release|debug){
  win32:...
  else:...
} else {
  win32:...
  else:...
}

例:指定win32和unix的庫路徑

win32:LIBS+= libavformat.lib
unix:LiBS+= libavformat.so

6.判斷編譯環境是x86架構還是arm架構

contains(QT_ARCH, arm64){
    message("arm64") #在這裡處理arm64所需
}else{
    message("x86")
}

以上可以組合使用,如下。

CONFIG += debug_and_release
CONFIG(debug, debug|release){  //處理debug
    win32{
    }
    unix{
        contains(QT_ARCH, arm64){
            message("arm64")
            }else{
            message("x86")
            }
    }
}else{     //處理release
    win32{
    }
    unix{
    }
}

7.在linux下編譯後指定make install後的檔案路徑

target.path = /home/admin1/target
 
#需要拷貝的檔案以及拷貝目地位置
conf.path = /home/admin1/target
conf.files += 
    ../config.ini 
    ../sqlite.db 
 
INSTALLS += target conf

上述描述的是,在終端編譯完成後,執行make install,生成的可執行檔案會拷貝到/home/admin1/target 這個路徑下,../config.ini   ../sqlite.db,一個組態檔和一個資料庫檔案也會拷貝到/home/admin1/target路徑下。

到此這篇關於QT .pro檔案使用解析的文章就介紹到這了,更多相關QT .pro檔案內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com