中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

自己做網(wǎng)站 服務(wù)器臨沂做網(wǎng)站推廣的公司

自己做網(wǎng)站 服務(wù)器,臨沂做網(wǎng)站推廣的公司,優(yōu)秀校園網(wǎng)站,都江堰建設(shè)局網(wǎng)站文章目錄 開始之前一、靜態(tài)庫(kù)(static Library)定義使用場(chǎng)景特點(diǎn)程序示例 二、動(dòng)態(tài)庫(kù)(dynamic Library)定義使用場(chǎng)景特點(diǎn)。程序示例第二種調(diào)用 開始之前 測(cè)試環(huán)境:Qt 5.15.2 Based on Qt 6.4.3(MSVC 2019, x86_64) 操作系統(tǒng):Windows11 專業(yè)版 編程語(yǔ)言&am…

文章目錄

      • 開始之前
      • 一、靜態(tài)庫(kù)(static Library)
          • 定義
          • 使用場(chǎng)景
          • 特點(diǎn)
          • 程序示例
      • 二、動(dòng)態(tài)庫(kù)(dynamic Library)
          • 定義
          • 使用場(chǎng)景
          • 特點(diǎn)。
          • 程序示例
          • 第二種調(diào)用

開始之前

測(cè)試環(huán)境:Qt 5.15.2 Based on Qt 6.4.3(MSVC 2019, x86_64)
操作系統(tǒng):Windows11 專業(yè)版
編程語(yǔ)言:C++
__編譯器:Qt Creator 11.0.3
本篇文章所有的代碼都是在上述的基礎(chǔ)上測(cè)試通過,此內(nèi)容應(yīng)當(dāng)是通用,不分版本,注明是為了后續(xù)定位缺陷,如有瑕疵,勞請(qǐng)指正。

一、靜態(tài)庫(kù)(static Library)

定義

靜態(tài)庫(kù)是在鏈接階段被合并到最終可執(zhí)行文件中的預(yù)編譯代碼集合。
它通常以.a(Unix/Linux)或.lib(Windows)為擴(kuò)展名。

使用場(chǎng)景
  • 當(dāng)需要將某些特定代碼封裝起來但是又不想讓其被動(dòng)態(tài)加載
  • 在嵌入式系統(tǒng)或者對(duì)啟動(dòng)時(shí)間和內(nèi)存占用有嚴(yán)格要求的環(huán)境中較為常見
特點(diǎn)
  • 永久性: 一旦被鏈接到可執(zhí)行文件中,靜態(tài)庫(kù)的代碼就會(huì)成為該程序的一部分。
  • 不可重用性:每個(gè)使用靜態(tài)庫(kù)的應(yīng)用程序都會(huì)包含一份完整的庫(kù)副本,這可能導(dǎo)致多個(gè)應(yīng)用程序之間存在重復(fù)代碼。
  • 迭代更新:靜態(tài)庫(kù)需要重新編譯和鏈接所有依賴于該庫(kù)的應(yīng)用程序。
  • 程序體積:導(dǎo)致生成的可執(zhí)行文件較大,因?yàn)樗怂幸蕾嚨膸?kù)代碼。
程序示例
  1. 創(chuàng)建靜態(tài)庫(kù)
    在這里插入圖片描述
    在這里插入圖片描述
    staticLibraryDemo 是靜態(tài)庫(kù)的庫(kù)名字,創(chuàng)建路徑可根據(jù)個(gè)人修改,然后直接下一步。
    在這里插入圖片描述
    直接下一步,默認(rèn)即可。(如需選擇cmake,可能生成的格式不太一樣,沒用過,這里僅以qmake為例)
    在這里插入圖片描述
    類型Shared Library、Statically Linked Library、Qt Plugin三種類型,分別表示共享庫(kù)(動(dòng)態(tài)庫(kù))、靜態(tài)鏈接庫(kù)(靜態(tài)庫(kù))、Qt插件,我們這里創(chuàng)建靜態(tài)庫(kù),所以使用Statically Linked Library。
    模塊Core、Gui、Widgets三個(gè)核心模塊,分別表示基礎(chǔ)模塊(Qt的基礎(chǔ)模塊,它提供了Qt應(yīng)用程序所需的非GUI功能)、圖形模塊(提供了用于創(chuàng)建圖形用戶界面的基本功能,包括基本的繪圖原語(yǔ)、窗口管理、鍵盤和鼠標(biāo)事件處理等)、組件模塊(提供了用于創(chuàng)建傳統(tǒng)的桌面風(fēng)格的用戶界面組件),我們這里選擇Core即可。

在這里插入圖片描述
這里選擇構(gòu)建組件,MSVC 2019 可在Visual Studio 2019調(diào)試,我項(xiàng)目配置的這個(gè)配件(根據(jù)自己配置選擇,可能2015甚至2020,或者沒有配置就直接MinGW也可),所以我選擇的就是Desktop Qt 5.15.2 MSVC2019 32 和 64位,然后下一步,直至創(chuàng)建成功,生成庫(kù)項(xiàng)目。

在這里插入圖片描述
創(chuàng)建成功后,pro文件里面,我們可以看見如上所述,1表示去掉GUI,2表示生成的是靜態(tài)庫(kù),然后我們就可以為自己的庫(kù)添加一些接口然后提供給外部使用了。

在這里插入圖片描述
1: 默認(rèn)構(gòu)造函數(shù)不再贅述;
2: 靜態(tài)對(duì)象,提供給外部一個(gè)唯一的對(duì)象,不過必須將構(gòu)造函數(shù)(默認(rèn)、有參、拷貝)全部私有化,不然就失去了意義;
3:測(cè)試的接口,這里傳入兩個(gè)int然后返回相加的結(jié)果,TODO后面省略,自定義接口,實(shí)現(xiàn)很簡(jiǎn)單,考慮完整性,依舊貼上。

在這里插入圖片描述

至此,Qt創(chuàng)建靜態(tài)庫(kù)已經(jīng)完成,生成之后沒問題即可。

  1. 打包發(fā)送
    在這里插入圖片描述
    在這里插入圖片描述
    使用靜態(tài)庫(kù)只需要將上述截圖的兩個(gè)文件,一個(gè)Lib和一個(gè).h頭文件給到使用項(xiàng)目即可使用,這里需要注意一點(diǎn):
    如果你生成靜態(tài)庫(kù)使用了32位的Release,那么你的項(xiàng)目也必須是32位的項(xiàng)目,否則會(huì)出現(xiàn)鏈接錯(cuò)誤,根據(jù)編譯器不同而不同錯(cuò)誤呈現(xiàn)方式。

  2. 測(cè)試靜態(tài)庫(kù)
    新建一個(gè)測(cè)試項(xiàng)目(這里跳過),然后右鍵項(xiàng)目選擇添加庫(kù),出現(xiàn)如下圖所示:
    在這里插入圖片描述
    選擇外部庫(kù),然后直接下一步。

    在這里插入圖片描述
    新項(xiàng)目目錄如上所示,lib放在根目錄,然后新建了一個(gè)include文件夾保存庫(kù)頭文件。
    在這里插入圖片描述
    1:選擇庫(kù)文件即軟件根目錄;
    2:選擇包含目錄,即新建的include目錄;
    3:我的測(cè)試環(huán)境是windows,所以這里我只選擇windows;
    4:測(cè)試靜態(tài)庫(kù),選擇靜態(tài);
    5:debug版本添加,我這里是Release版本,所以按需選擇即可,我這里主要是勾選解釋一下;
    6:直接下一步,Qt會(huì)自動(dòng)在pro文件里面添加對(duì)應(yīng)的庫(kù)格式,這里不截圖跳過。

在這里插入圖片描述
庫(kù)使用即測(cè)試接口如上圖所示,到此靜態(tài)庫(kù)從創(chuàng)建到使用就結(jié)束了,大型項(xiàng)目同理。

二、動(dòng)態(tài)庫(kù)(dynamic Library)

定義

動(dòng)態(tài)庫(kù)是在運(yùn)行時(shí)被加載的預(yù)編譯代碼集合,在不同的操作系統(tǒng)中,動(dòng)態(tài)庫(kù)有不同的擴(kuò)展名:.so(Unix/Linux)、.dll(Windows)或.dylib(macOS)

使用場(chǎng)景
  • 當(dāng)需要頻繁更新代碼或希望多個(gè)程序共享相同的功能時(shí)
  • 在桌面應(yīng)用和服務(wù)器端應(yīng)用中非常普遍
特點(diǎn)。
  • 可共享性:多個(gè)程序可以同時(shí)訪問同一份動(dòng)態(tài)庫(kù),節(jié)省內(nèi)存空間。
  • 迭代更新:如果沒有改變接口,只需替換動(dòng)態(tài)庫(kù)文件即可更新其功能,而無需重新編譯和鏈接使用它的程序。
  • 延遲綁定:函數(shù)調(diào)用等操作可以在程序運(yùn)行時(shí)進(jìn)行綁定,而不是在編譯時(shí)綁定。
  • 程序體積:由于是外部加載的,所以不會(huì)增加可執(zhí)行文件本身的大小。
程序示例

程序相關(guān)與靜態(tài)庫(kù)相似,唯一不同的就是創(chuàng)建的幾個(gè)選擇,這里我不做講解,僅貼上創(chuàng)建截圖。

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
值得一提的是,這里的變化,靜態(tài)庫(kù)是staticlib,動(dòng)態(tài)庫(kù)是libpro文件的區(qū)別。

在這里插入圖片描述
動(dòng)態(tài)庫(kù)新增了一個(gè)global.h,到時(shí)候也要一起放進(jìn)項(xiàng)目的include(這里只針對(duì)我的測(cè)試,大家根據(jù)自己實(shí)際情況添加)

在這里插入圖片描述
導(dǎo)入項(xiàng)目

在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
然后就可以使用了

在這里插入圖片描述

這里再多介紹一種方式,上面是顯示加載,在pro里面有添加代碼不過是Qt自動(dòng)添加的,然后在根目錄也能找到lib和.h,然后在Release目錄能找到dll文件。

第二種調(diào)用

在這里插入圖片描述
即通過QLibrary的方式隱式調(diào)用:

在這里插入圖片描述
如上所述:
1、構(gòu)建QLibrary對(duì)象的時(shí)候構(gòu)造函數(shù)指定dll路徑,然后通過對(duì)象的方法load()去加載庫(kù),如果返回true表示加載成功,返回false表示加載失敗,也可通過unload()函數(shù)去卸載庫(kù),返回值同load(),然后isLoaded()函數(shù)查詢庫(kù)是否有調(diào)用成功,再程序運(yùn)行過程中。

在這里插入圖片描述
可以看見,pro文件里面通過添加庫(kù)的方式生成的代碼已經(jīng)屏蔽然后通過QLibrary同樣打印了之前的內(nèi)容,說明是OK的。

http://www.risenshineclean.com/news/51584.html

相關(guān)文章:

  • 專業(yè)做數(shù)據(jù)的網(wǎng)站有哪些寧波如何做seo排名優(yōu)化
  • 廣州外貿(mào)型網(wǎng)站智能網(wǎng)站排名優(yōu)化
  • 網(wǎng)頁(yè)在線制作網(wǎng)站搜索引擎優(yōu)化課程
  • 中國(guó)建設(shè)學(xué)會(huì)網(wǎng)站企業(yè)網(wǎng)站模板源碼
  • 做前后端網(wǎng)站教程免費(fèi)軟文發(fā)布平臺(tái)
  • 江蘇水利工程建設(shè)招投標(biāo)網(wǎng)站最佳bt磁力狗
  • 公司網(wǎng)站建設(shè)開題報(bào)告西安百度推廣電話
  • 廣東建設(shè)網(wǎng)工程信息網(wǎng)站無錫網(wǎng)站建設(shè)seo
  • wordpress如何開發(fā)搜索寧波seo自然優(yōu)化技術(shù)
  • 免費(fèi)做海報(bào)的網(wǎng)站效果好的東莞品牌網(wǎng)站建設(shè)
  • 昆山營(yíng)銷型網(wǎng)站建設(shè)方法模板建站優(yōu)點(diǎn)
  • 產(chǎn)品包裝設(shè)計(jì)網(wǎng)站找誰(shuí)做google瀏覽器下載
  • 壽光專業(yè)做網(wǎng)站的公司天津百度分公司
  • 網(wǎng)站建設(shè)論文的摘要免費(fèi)b站推廣網(wǎng)站入口
  • 校園網(wǎng)站頁(yè)面設(shè)計(jì)杭州排名優(yōu)化公司
  • 關(guān)于網(wǎng)站開發(fā)的文獻(xiàn)縱橫seo
  • 企業(yè)網(wǎng)站建設(shè)的實(shí)踐意義外鏈怎么做
  • 如何靠裁圖找到網(wǎng)站中國(guó)最好的營(yíng)銷策劃公司
  • 網(wǎng)站項(xiàng)目建設(shè)申請(qǐng)匯報(bào)大綱網(wǎng)絡(luò)營(yíng)銷推廣方案整合
  • 四網(wǎng)合一網(wǎng)站建設(shè)seo排名點(diǎn)擊軟件推薦
  • 個(gè)人新聞?lì)惥W(wǎng)站模板世界足球排名前100名
  • 體驗(yàn)好的網(wǎng)站陜西省人民政府
  • 互聯(lián)網(wǎng)行業(yè)環(huán)境分析seo博客
  • 網(wǎng)站備案要幕布照新手做銷售怎么開發(fā)客戶
  • 建網(wǎng)站公司seo技巧seo排名優(yōu)化
  • 網(wǎng)站建設(shè)賺錢嗎網(wǎng)站怎么快速排名
  • 昆明做網(wǎng)站建設(shè)價(jià)位50個(gè)市場(chǎng)營(yíng)銷經(jīng)典案例
  • 中信建設(shè)有限責(zé)任公司洪波頁(yè)優(yōu)化軟件
  • 番禺做網(wǎng)站平臺(tái)湖南競(jìng)價(jià)優(yōu)化專業(yè)公司
  • 做房產(chǎn)經(jīng)紀(jì)的那些網(wǎng)站可以進(jìn)客東莞網(wǎng)絡(luò)營(yíng)銷推廣軟件