日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【必知必会】pro文件及常用配置

發(fā)布時(shí)間:2023/12/10 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【必知必会】pro文件及常用配置 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

筆者在工作中了解到,有部分同學(xué)對(duì)Qt的項(xiàng)目文件,即.pro文件的基本配置編寫(xiě)不是很了解。作為一名Qt工程師,.pro文件的編寫(xiě)也是必會(huì)的技能,本文對(duì)此進(jìn)行一個(gè)講解,并將相關(guān)資料做一個(gè)匯總。

.pro文件的介紹

.pro文件是Qt的項(xiàng)目文件,Qt允許我們直接編輯,不像Visual Studio基本上所有項(xiàng)目選項(xiàng)都需要界面來(lái)配置。
Qt使用其自帶的qmake.exe來(lái)解析.pro文件。.pro文件有自己的語(yǔ)法規(guī)則,所以學(xué)習(xí)起來(lái)需要一定的成本。目前我們只需要學(xué)習(xí)編寫(xiě)最基本的配置即可,根據(jù)二八定律,80%的情況下,我們只能用到20%的配置方法,剩余20%的情況等到我們熟悉了.pro文件以后,再去查詢(xún)解決即可。二八定律學(xué)習(xí)法一定要牢牢掌握哦!

一個(gè).pro文件的例子

打開(kāi)Qt,新建一個(gè)Qt Widgets Application。筆者使用的Qt Creator版本是Qt Creator 4.0.2。
下面是.pro文件中的內(nèi)容

#------------------------------------------------- # # Project created by QtCreator 2021-08-20T09:56:45 # #-------------------------------------------------QT += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = untitled13 TEMPLATE = appSOURCES += main.cpp\mainwindow.cppHEADERS += mainwindow.hFORMS += mainwindow.ui

下面依次解釋上面的代碼各行的含義

  • QT += core gui
    指定當(dāng)前項(xiàng)目使用的Qt模塊,Qt會(huì)自動(dòng)將相關(guān)模塊的頭文件、庫(kù)文件加入到項(xiàng)目配置中。只有在.pro中指定了需要使用的庫(kù),才能在項(xiàng)目中使用相關(guān)的功能。
    比如使用網(wǎng)絡(luò)時(shí):QT += network;使用xml時(shí):QT += xml,等等。
    新問(wèn)題:
    如何知道某個(gè)Qt類(lèi)在哪個(gè)庫(kù)呢。在Qt手冊(cè)中找到對(duì)應(yīng)的類(lèi),有類(lèi)所在庫(kù)的信息,如下圖:

  • greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
    此行的含義為:當(dāng)前Qt的版本大于Qt4的話(huà),即Qt5的話(huà),就加入widgets模塊。可見(jiàn)widgets模塊可能是Qt5中才引入的。

  • TARGET = untitled13
    目標(biāo)程序名稱(chēng)。就是生成出來(lái)的目標(biāo)文件的文件名前綴,不包含擴(kuò)展名,擴(kuò)展名由項(xiàng)目類(lèi)型決定。這里指定了untitled13,如果項(xiàng)目類(lèi)型是應(yīng)用程序,則會(huì)生成untitled13.exe;如果項(xiàng)目類(lèi)型是動(dòng)態(tài)庫(kù),則會(huì)生成untiled13.dll文件。

  • TEMPLATE = app
    指定項(xiàng)目模板類(lèi)型,也就是項(xiàng)目類(lèi)型。可以指定app(應(yīng)用程序)、lib(庫(kù)),除了這些還有其他類(lèi)型,Qt文檔的qmake manual部分有詳細(xì)描述。

  • SOURCES += main.cpp mainwindow.cpp
    指定源代碼文件列表

  • HEADERS += mainwindow.h
    指定頭文件列表

  • FORMS += mainwindow.ui
    指定ui設(shè)計(jì)文件列表

其他常用配置項(xiàng)

  • DESTDIR = $$PWD/
    此行代碼用于指定目標(biāo)文件的保存目錄。
    DESTDIR是英文Destination Directory的縮寫(xiě),即目的文件夾。
    $$PWD是一個(gè)保存當(dāng)前目錄路徑的變量。

  • LIBS += -L$$PWD/
    此行代碼同Visual Studio中的“附加庫(kù)目錄”功能,用于添加庫(kù)文件搜索路徑。

  • LIBS += -lmylib
    此行代碼同Visual Studio中的“附加依賴(lài)庫(kù)”功能,用于添加需要鏈接的庫(kù)文件。可以和上面的添加庫(kù)文件搜索路徑寫(xiě)在一起,比如 LIBS += -L$$PWD -lmylib。

  • CONFIG += staticlib
    結(jié)合TEMPLATE = lib使用,指定生成靜態(tài)庫(kù)。

  • CONFIG += dll
    結(jié)合TEMPLATE = lib使用,指定生成動(dòng)態(tài)庫(kù)。

  • INCLUDEPATH += $$PWD
    用于添加頭文件的包含目錄。和Visual Studio中的“附加包含目錄”功能一致。

  • DEFINES += MY_MACRO
    用于添加全局需要使用的宏定義。和Visual Studio中的“預(yù)處理器定義”功能一致。

  • message($$PWD)
    message是.pro中的內(nèi)置函數(shù),用于打印消息或變量,一般用于調(diào)試變量或步驟是否正確。
    輸出的消息會(huì)在Qt Creator底部的“概要信息”中打印。

  • 配置判斷

CONFIG(debug, debug | release) {# 這里寫(xiě)debug下的配置內(nèi)容,最常見(jiàn)的用法是鏈接debug版本第三方的庫(kù) } else {# 這里寫(xiě)release下的配置內(nèi)容,最常見(jiàn)的用法是鏈接release版本第三方的庫(kù) }
  • include(sub_module.pri)
    這個(gè)非常重要。.pri是子模塊配置文件,編寫(xiě)方式和.pro基本一樣。不一樣的地方就在于,它畢竟是子模塊配置文件,只需要寫(xiě)子模塊的配置信息即可,不需要寫(xiě)諸如 TEMPLATE = app等這種應(yīng)該在pro文件中編寫(xiě)的配置項(xiàng)。
    有的同學(xué)會(huì)問(wèn),.pri文件在哪創(chuàng)建?界面上怎么找不到?這個(gè)確實(shí)筆者也一直都沒(méi)有找到,需要自己新建一個(gè)文件,將文件后綴改為.pri,最后在.pro文件中使用include包含進(jìn)來(lái)。
    .pri的典型用法這里舉一例:用來(lái)引入第三方庫(kù)。一般第三方庫(kù)需要提供頭文件、庫(kù)文件。想要引入到Qt項(xiàng)目中,編寫(xiě)一個(gè).pri文件就比較簡(jiǎn)單,需要用到的項(xiàng)目直接include這個(gè).pri文件即可。相對(duì)于Visual Studio需要到多個(gè)界面配置第三方庫(kù),簡(jiǎn)單了很多。一個(gè)引入庫(kù)的pri子模塊文件內(nèi)容如下圖所示:

其他說(shuō)明項(xiàng)

  • 經(jīng)測(cè)試,構(gòu)建一次項(xiàng)目.pro文件可能會(huì)被執(zhí)行多次。所以不能認(rèn)為.pro構(gòu)建一次,只執(zhí)行一次,和我們想的不太一樣,需要注意。

參考資料

當(dāng)然是官方手冊(cè)了,在Qt Assistant中,切換到“索引”,輸入“qmake manual”即可找到。

結(jié)語(yǔ)

學(xué)會(huì)使用.pro文件真的很重要,一定要掌握最基本的配置。
后續(xù)如果有其他比較重要的配置項(xiàng),會(huì)更新說(shuō)明,敬請(qǐng)關(guān)注。


本文首發(fā)自公眾號(hào)“Qt未來(lái)工程師”,歡迎關(guān)注。

總結(jié)

以上是生活随笔為你收集整理的【必知必会】pro文件及常用配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。