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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/10 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【必知必会】pro文件及常用配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

筆者在工作中了解到,有部分同學對Qt的項目文件,即.pro文件的基本配置編寫不是很了解。作為一名Qt工程師,.pro文件的編寫也是必會的技能,本文對此進行一個講解,并將相關資料做一個匯總。

.pro文件的介紹

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

一個.pro文件的例子

打開Qt,新建一個Qt Widgets Application。筆者使用的Qt Creator版本是Qt Creator 4.0.2。
下面是.pro文件中的內容

#------------------------------------------------- # # 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
    指定當前項目使用的Qt模塊,Qt會自動將相關模塊的頭文件、庫文件加入到項目配置中。只有在.pro中指定了需要使用的庫,才能在項目中使用相關的功能。
    比如使用網絡時:QT += network;使用xml時:QT += xml,等等。
    新問題:
    如何知道某個Qt類在哪個庫呢。在Qt手冊中找到對應的類,有類所在庫的信息,如下圖:

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

  • TARGET = untitled13
    目標程序名稱。就是生成出來的目標文件的文件名前綴,不包含擴展名,擴展名由項目類型決定。這里指定了untitled13,如果項目類型是應用程序,則會生成untitled13.exe;如果項目類型是動態庫,則會生成untiled13.dll文件。

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

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

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

  • FORMS += mainwindow.ui
    指定ui設計文件列表

其他常用配置項

  • DESTDIR = $$PWD/
    此行代碼用于指定目標文件的保存目錄。
    DESTDIR是英文Destination Directory的縮寫,即目的文件夾。
    $$PWD是一個保存當前目錄路徑的變量。

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

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

  • CONFIG += staticlib
    結合TEMPLATE = lib使用,指定生成靜態庫。

  • CONFIG += dll
    結合TEMPLATE = lib使用,指定生成動態庫。

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

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

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

  • 配置判斷

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

其他說明項

  • 經測試,構建一次項目.pro文件可能會被執行多次。所以不能認為.pro構建一次,只執行一次,和我們想的不太一樣,需要注意。

參考資料

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

結語

學會使用.pro文件真的很重要,一定要掌握最基本的配置。
后續如果有其他比較重要的配置項,會更新說明,敬請關注。


本文首發自公眾號“Qt未來工程師”,歡迎關注。

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。