国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Qt 項(xiàng)目A調(diào)用項(xiàng)目B方法(項(xiàng)目架構(gòu)管理)

這篇具有很好參考價(jià)值的文章主要介紹了Qt 項(xiàng)目A調(diào)用項(xiàng)目B方法(項(xiàng)目架構(gòu)管理)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言

項(xiàng)目開發(fā)中,如果項(xiàng)目比較大,大多采用多項(xiàng)目的方式,主要是為了方便代碼管理,也更開發(fā)變得更加方便。操作如下:
注:我用的版本是Qt 5.12.3

一、建立項(xiàng)目目錄

要求:
1、項(xiàng)目A為主,項(xiàng)目B為輔;
2、定位:A為主要實(shí)現(xiàn)業(yè)務(wù)上界面交互,B為A提供方法支持,相當(dāng)于將B作為一個(gè)可實(shí)時(shí)編輯的庫

1、文件 -> 新建文件或項(xiàng)目 -> 其他項(xiàng)目 -> 子目錄項(xiàng)目
注:項(xiàng)目名:TotalProject

Qt 項(xiàng)目A調(diào)用項(xiàng)目B方法(項(xiàng)目架構(gòu)管理)

2、打開剛才項(xiàng)目的 .pro 文件,并編輯
TEMPLATM = subdirs

別忘加上面這句代碼了

3、鼠標(biāo)放置在項(xiàng)目名上,右鍵 新建子項(xiàng)目

Qt 項(xiàng)目A調(diào)用項(xiàng)目B方法(項(xiàng)目架構(gòu)管理)

4、如上圖,選擇Application -> Qt Widget Application -> Choose -> 繼續(xù)填寫信息直至完成

注:子項(xiàng)目1名字為 Item1

5、重復(fù)3和4的動(dòng)作,新建了2個(gè)子項(xiàng)目,名字為Item1和Item2

現(xiàn)在項(xiàng)目結(jié)構(gòu)如圖:
Qt 項(xiàng)目A調(diào)用項(xiàng)目B方法(項(xiàng)目架構(gòu)管理)

6、此時(shí)兩個(gè)子項(xiàng)目沒有任何關(guān)系,后面要做的就是將項(xiàng)目關(guān)聯(lián)起來

二、項(xiàng)目關(guān)聯(lián)

1、新建 global.h 文件

文件 -> 新建文件或項(xiàng)目 -> Library -> C++庫 -> 類型:共享庫 -> Kit Selection -> 選擇QtCore -> 類名 -> Next
注:為了減少更名的麻煩,所以這里我將類名直接設(shè)置為 Item2
如圖1:
Qt 項(xiàng)目A調(diào)用項(xiàng)目B方法(項(xiàng)目架構(gòu)管理)
圖2:
Qt 項(xiàng)目A調(diào)用項(xiàng)目B方法(項(xiàng)目架構(gòu)管理)

2、此時(shí)得到了一個(gè) Item2_global.h 文件

如圖:
Qt 項(xiàng)目A調(diào)用項(xiàng)目B方法(項(xiàng)目架構(gòu)管理)

3、編輯 global.h 文件 和 Item2.pro 文件

3.1 在 Item2.pro 文件中加入代碼:

DEFINES += ITEM2_LIB
TEMPLATE = lib

注:名字根據(jù)自己項(xiàng)目來即可,方便管理和閱讀;(命名建議:項(xiàng)目名_LIB)

3.2 在global.h 文件中修改代碼:
原代碼:

#ifndef ITEM2_GLOBAL_H
#define ITEM2_GLOBAL_H

#include <QtCore/qglobal.h>

#if defined(ITEM2_LIBRARY)
#  define ITEM2SHARED_EXPORT Q_DECL_EXPORT
#else
#  define ITEM2SHARED_EXPORT Q_DECL_IMPORT
#endif

#endif // ITEM2_GLOBAL_H

修改后

#ifndef ITEM2_GLOBAL_H
#define ITEM2_GLOBAL_H

#include <QtCore/qglobal.h>

#if defined(ITEM2_LIB)
#  define ITEM2_EXPORT Q_DECL_EXPORT
#else
#  define ITEM2_EXPORT Q_DECL_IMPORT
#endif

#endif // ITEM2_GLOBAL_H
4、將 global.h 文件拷貝到 Item2 項(xiàng)目目錄下,并添加現(xiàn)有文件,將 global.h 加入項(xiàng)目 Item2 中

效果如圖:
Qt 項(xiàng)目A調(diào)用項(xiàng)目B方法(項(xiàng)目架構(gòu)管理)

5、編輯 Item2 項(xiàng)目文件

注:文件有 Item2.h和 Item2.cpp
在 Item2.h 頭文件中,加入代碼 ITEM2_EXPORT

class ITEM2_EXPORT Item_two{
public:
	Item_two();
	int maxValue(const int, const int);	
}

ITEM2_EXPORT 就是之前在 global.h 文件的,一定要對應(yīng)

6、編輯 Item1.pro 文件

1、增加includePath 和 libs

INCLUDEPATH += $$PWD/../Item2
LIBS += D:/Code/build/Item2/debug/item2.lib

注:LIBS 我是直接在構(gòu)建 Item2 之后,拿到的 item2.lib 的路徑,這是絕對路徑,建議用相對路徑

相對路徑:

CONFIG(debug, debug | release){
	DESTDIR += $${PWD}/../Runs/debug				#DESTDIR 目標(biāo)程序生成目錄
	LIBS	+= $${PWD}/../Runs/debug/Item2.lib		#libs 庫生成目錄
}else{
	DESTDIR += $${PWD}/../Runs/release				#DESTDIR 目標(biāo)程序生成目錄
	LIBS	+= $${PWD}/../Runs/release/Item2.lib
}
7、編輯 TotalProject.pro 文件
CONFIG += ordered

SUBDIRS += \
	Item2 \ 
	Item1

三、驗(yàn)證

方式:item1 上去調(diào)用 item2 的方法 maxValue

1、cpp 實(shí)現(xiàn) item_two.h 的 maxValue 方法
int Item_two::maxValue(const int a, const int b){
	return a > b ? a : b;
}
2、在 Item_one.h 文件 include “Item_two.h”,并調(diào)用 maxValue 方法
Item_two v;
int value = v.maxValue(10, 15);
qDebug() << value;
3、構(gòu)建 -> 運(yùn)行

此時(shí)應(yīng)該是報(bào)錯(cuò)的

錯(cuò)誤1:無法解析外部符號,未找到文件 Item1.obj 或者 ***.obj

解決方法:文章第二節(jié)《項(xiàng)目關(guān)聯(lián)》中第6小節(jié),設(shè)置LIBS。(應(yīng)該是LIB路徑不對)

錯(cuò)誤2:由于找不到Item2.dll,無法繼續(xù)執(zhí)行代碼

解決方法:去項(xiàng)目build路徑下,在Item2文件中的Item2.dll,將該文件復(fù)制到 Item1 文件夾中debug文件里面

上述兩個(gè)問題解決之后,基本上就可以運(yùn)行成功了。

Qt 項(xiàng)目A調(diào)用項(xiàng)目B方法(項(xiàng)目架構(gòu)管理)文章來源地址http://www.zghlxwxcb.cn/news/detail-417104.html

到了這里,關(guān)于Qt 項(xiàng)目A調(diào)用項(xiàng)目B方法(項(xiàng)目架構(gòu)管理)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • QT學(xué)習(xí)開發(fā)筆記(項(xiàng)目實(shí)戰(zhàn)之智能家居物聯(lián)網(wǎng)項(xiàng)目1 )

    QT學(xué)習(xí)開發(fā)筆記(項(xiàng)目實(shí)戰(zhàn)之智能家居物聯(lián)網(wǎng)項(xiàng)目1 )

    本章介紹使用 Qt 開發(fā)智能家居中的一個(gè)物聯(lián)應(yīng)用。簡單直白的說就是通過云服務(wù)器遠(yuǎn)程控 制設(shè)備(與設(shè)備通信等)。本章可以直接做畢設(shè),是畢設(shè)物聯(lián)網(wǎng)項(xiàng)目的一大福音!本章將實(shí)現(xiàn)遠(yuǎn) 程點(diǎn)亮開發(fā)板 LED 作為一個(gè)項(xiàng)目實(shí)例。 在生活中,我們可能使用過 WIFI 智能插座這款產(chǎn)品

    2023年04月13日
    瀏覽(88)
  • QT學(xué)習(xí)開發(fā)筆記(項(xiàng)目實(shí)戰(zhàn)之智能家居物聯(lián) UI 界面開發(fā) )

    QT學(xué)習(xí)開發(fā)筆記(項(xiàng)目實(shí)戰(zhàn)之智能家居物聯(lián) UI 界面開發(fā) )

    項(xiàng)目路徑為 4/01_smarthome/01_smarthome/01_smarthome.pro,先看項(xiàng)目界面。項(xiàng)目界面如 下,采用暗黑主題設(shè)計(jì),結(jié)合黃色作為亮色,讓用戶一目了然。界面筆者從一些智能家居界面 中找到靈感的,編寫設(shè)計(jì)完成的效果不錯(cuò)!請自行查閱源碼,掌握了本教程前面第七章的內(nèi)容, 就可以理

    2024年02月16日
    瀏覽(24)
  • Qt5.15.2安卓Android項(xiàng)目開發(fā)環(huán)境配置

    官方下載:https://download.qt.io/archive/qtcreator/4.11/4.11.2/ 鏡像下載:https://mirrors.cloud.tencent.com/qt/archive/qtcreator/4.11/4.11.2/ 官方更新器內(nèi)部下載 參考:https://blog.csdn.net/weixin_41013202/article/details/129957693 https://adoptium.net/zh-CN/temurin/releases/ (1) Android SDK Platform 最新版(現(xiàn)在是33) (2)

    2024年02月14日
    瀏覽(21)
  • VS開發(fā)QT項(xiàng)目,手寫按鈕槽函數(shù)避坑

    VS開發(fā)QT項(xiàng)目,手寫按鈕槽函數(shù)避坑

    由于最近開發(fā)需要在VS2017上配置QT開發(fā)環(huán)境,進(jìn)行QT項(xiàng)目的開發(fā),之前從來沒有這樣使用過,在此記一些坑。 QT的槽函數(shù)是非常方便的,使用QT Creator可以自動(dòng)生成代碼,方便快捷。但是代碼可讀性不強(qiáng),一些連接方面的信息都被隱藏了。由于之前一直使用QT Creator,所以其實(shí)還

    2023年04月13日
    瀏覽(21)
  • kafka發(fā)布訂閱原理,Java項(xiàng)目開發(fā)如何設(shè)計(jì)整體架構(gòu)

    kafka發(fā)布訂閱原理,Java項(xiàng)目開發(fā)如何設(shè)計(jì)整體架構(gòu)

    源碼閱讀,最核心有三點(diǎn):技術(shù)基礎(chǔ)+強(qiáng)烈的求知欲+耐心。 1.1 設(shè)計(jì)模式(45設(shè)計(jì)模式:介紹+優(yōu)缺點(diǎn)+應(yīng)用實(shí)例+源代碼+解決問題) 1.2 Spring復(fù)習(xí)大綱:依賴注入Ioc+Beans+注解+數(shù)據(jù)訪問+AOP+MVC等 1.3 Spring全家桶筆記:Spring+Spring Boot+Spring Cloud+Spring MVC 面試題(含解析)+學(xué)習(xí)書籍+學(xué)習(xí)

    2024年03月12日
    瀏覽(30)
  • 項(xiàng)目開發(fā)代碼分支管理

    項(xiàng)目開發(fā)代碼分支管理

    項(xiàng)目開發(fā)流程系列 項(xiàng)目開發(fā)混淆從初識到理解 項(xiàng)目開發(fā)代碼分支管理 博客創(chuàng)建時(shí)間:2022.08.27 博客更新時(shí)間:2022.08.28 以Android studio build=7.0.0,SDKVersion 31來分析講解。如圖文和網(wǎng)上其他資料不一致,可能是別的資料版本較低而已。 在團(tuán)隊(duì)開發(fā)中,當(dāng)有多個(gè)需求版本進(jìn)行并發(fā)

    2023年04月08日
    瀏覽(17)
  • uni-app開發(fā)小程序:項(xiàng)目架構(gòu)以及經(jīng)驗(yàn)分享

    2022年的時(shí)候,公司為了快速完成產(chǎn)品并上線,所以選用微信小程序?yàn)檩d體;由于后期還是打算開發(fā)App;雖然公司有ios和Android,但是如果能一套代碼打包多端,一定程度上可以解決成本;前端技術(shù)棧也是vue,在考察選擇了uni-app。后來多個(gè)小程序項(xiàng)目都采用了uni-app開發(fā),積累了

    2024年02月09日
    瀏覽(87)
  • Vue的架構(gòu)以及基于腳手架環(huán)境開發(fā)vue項(xiàng)目

    Vue的架構(gòu)以及基于腳手架環(huán)境開發(fā)vue項(xiàng)目

    M:model 模型層(業(yè)務(wù)邏輯層),主要包含 JS 代碼,用于管理業(yè)務(wù)邏輯的實(shí)現(xiàn)。 V:View 視圖層,主要包括 HTML / CSS代碼,用于管理 UI 的展示。 VM:viewModel (視圖模型層),用于將data與視圖層的 DOM 進(jìn)行動(dòng)態(tài)綁定。 基于腳手架環(huán)境開發(fā)Vue項(xiàng)目 制作web 從小作坊狀態(tài)轉(zhuǎn)向工程化開

    2024年02月01日
    瀏覽(24)
  • QT使用MQTT協(xié)議連接ONENET云平臺:智能家居PC客戶端開發(fā)筆記-2 項(xiàng)目開發(fā)

    QT使用MQTT協(xié)議連接ONENET云平臺:智能家居PC客戶端開發(fā)筆記-2 項(xiàng)目開發(fā)

    這篇文章主要是分享QT智能家居項(xiàng)目的代碼 在我看來,QT MQTT的使用主要難點(diǎn)就是對于環(huán)境的搭建,在我們把環(huán)境搭建完之后,接下來就是傳統(tǒng)手藝了,我們只要知道相應(yīng)的庫函數(shù),調(diào)用它,就能實(shí)現(xiàn)我們所需要的功能了。 所以,在這里我也只是簡單的分享一下我寫的第一版

    2024年02月16日
    瀏覽(23)
  • STM32MP157開發(fā)板Linux+Qt項(xiàng)目實(shí)戰(zhàn):智慧家庭

    STM32MP157開發(fā)板Linux+Qt項(xiàng)目實(shí)戰(zhàn):智慧家庭

    stm32mp157開發(fā)板FS-MP1A是華清遠(yuǎn)見自主研發(fā)的一款高品質(zhì)、高性價(jià)比的Linux+單片機(jī)二合一的嵌入式教學(xué)級開發(fā)板。開發(fā)板搭載ST的STM32MP157高性能微處理器,集成2個(gè)Cortex-A7核和1個(gè)Cortex-M4 核,A7核上可以跑Linux操作系統(tǒng),M4核上可以跑FreeRTOS、RT-Thread等實(shí)時(shí)操作系統(tǒng)。開發(fā)板搭配仿真

    2024年02月09日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包