日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

QT?.pro文件使用解析_C 語言

作者:Mr.codeee ? 更新時間: 2022-06-12 編程語言

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路徑下。

原文鏈接:https://blog.csdn.net/wzz953200463/article/details/124107110

欄目分類
最近更新