1. 方案簡(jiǎn)介
EASY EAI Orin-Nano安裝的是帶有xfce桌面環(huán)境的Debian系統(tǒng),因此在上面運(yùn)行的Qt應(yīng)用程序可被窗口管理器接管。如下圖所示:

而且RK3576的CPU性能也十分強(qiáng)大,因此Qt應(yīng)用程序可直接在開發(fā)板上進(jìn)行編譯,這樣能達(dá)到最優(yōu)的兼容性。
2. 快速上手
如果您初次閱讀此文檔,請(qǐng)閱讀:《入門指南/源碼管理及編程介紹/源碼工程管理》,按需管理自己工程源碼(注:此文檔必看,并建議采用【遠(yuǎn)程掛載管理】方式,否則有代碼丟失風(fēng)險(xiǎn)?。。。?。
2.1 源碼工程下載
先在PC虛擬機(jī)定位到nfs服務(wù)目錄,再在目錄中創(chuàng)建存放源碼倉(cāng)庫(kù)的管理目錄:
cd ~/nfsroot mkdir GitHub cd GitHub
再通過(guò)git工具,在管理目錄內(nèi)克隆遠(yuǎn)程倉(cāng)庫(kù)(需要設(shè)備能對(duì)外網(wǎng)進(jìn)行訪問(wèn))
git clone https://github.com/EASY-EAI/EASY-EAI-Toolkit-3576.git

注:
* 此處可能會(huì)因網(wǎng)絡(luò)原因造成卡頓,請(qǐng)耐心等待。
* 如果實(shí)在要在gitHub網(wǎng)頁(yè)上下載,也要把整個(gè)倉(cāng)庫(kù)下載下來(lái),不能單獨(dú)下載本實(shí)例對(duì)應(yīng)的目錄。
2.2 開發(fā)環(huán)境搭建
通過(guò)adb shell進(jìn)入板卡開發(fā)環(huán)境,如下圖所示。

若未曾在此開發(fā)板上開發(fā)過(guò)Qt程序,需要先在開發(fā)板上安裝以下幾個(gè)軟件包:
sudo apt-get update sudo apt-get install qtbase5-dev
通過(guò)以下命令,把nfs目錄掛載上nfs服務(wù)器。
mount -t nfs -o nolock : /home/orin-nano/Desktop/nfs/

2.3 例程編譯
然后定位到nfs的掛載目錄,再在目錄中創(chuàng)建存放源碼倉(cāng)庫(kù)的管理目錄:
cd /home/orin-nano/Desktop/nfs/GitHub
進(jìn)入到對(duì)應(yīng)的開發(fā)實(shí)例目錄執(zhí)行編譯操作,具體命令如下所示:
cd EASY-EAI-Toolkit-3576/UiSolutions/QDemo ./build.sh

2.4 例程運(yùn)行及效果
執(zhí)行下方命令,運(yùn)行示例程序:
./Release/QDemo
執(zhí)行例程,桌面會(huì)彈出一個(gè)基于Qt庫(kù)開發(fā)的應(yīng)用窗口,效果如下所示。

3. 開發(fā)指南
3.1 Toolkit倉(cāng)庫(kù)介紹

3.2 示例文件&目錄結(jié)構(gòu)
3.2.1 開發(fā)實(shí)例介紹
每個(gè)解決方案就是一個(gè)獨(dú)立的項(xiàng)目,項(xiàng)目使用qmake構(gòu)建自動(dòng)編譯部署。一個(gè)最簡(jiǎn)單的Qt項(xiàng)目至少要包含以下元素:build.sh、*.pro、main.cpp、mainWidget.ui、mainWidget.cpp、mainWidget.h,如下所示。

具體介紹如下所示。
| 組成部分 | 描述 |
| build.sh | 編譯腳本,用于管理生成可執(zhí)行文件后的部署準(zhǔn)備工作,用戶可自定義shell命令 |
| QDemo.pro | 工程管理文件,用于組織整個(gè)工程結(jié)構(gòu),指導(dǎo)qmake生成Makefile。 |
| QResource | 用于存放貼圖資源,樣式表資源等。 |
| resource.qrc | 工程管理文件,用于組織管理貼圖資源,樣式表資源等。 |
| QSrcCode | 用于存放工程源代碼。 |
| api.pri | 工程管理文件,用于組織管理“對(duì)easyeai-api再封裝的子模塊”相關(guān)源碼。 |
| common.pri | 工程管理文件,用于組織管理“第三方子模塊”或“業(yè)務(wù)邏輯”相關(guān)源碼。 |
| ui.pri | 工程管理文件,用于組織管理“UI界面效果”相關(guān)源碼。 |
3.3 *.pro和*.pri文件解析
3.3.1 *.pro文件:
第一部分為輸出配置,如下所示:

配置信息如下所示。
| 配置項(xiàng) | 描述 |
| TARGET | 輸出文件名稱 |
| TEMPLATE | 輸出文件類型,app為可執(zhí)行文件,lib為庫(kù)文件 |
第二部分為全局編譯選項(xiàng)配置,如下所示:

| 配置項(xiàng) | 描述 |
| LIBS | 全局鏈接庫(kù),通常是本Ubuntu系統(tǒng)提供的庫(kù) |
| QMAKE_CXXFLAGS | 全局C++編譯參數(shù),可傳入一些宏或者C++編譯配置 |
第三部分為加載自定義子模塊,如下所示:

第四部分為加載資源管理,如下所示:

第五部分為指定文件輸出目錄,如下所示:

3.3.2 api.pri文件:
本工程文件是對(duì)我司的功能組件庫(kù)的管理,若用戶有“對(duì)我司的功能組件庫(kù)進(jìn)行再封裝”的需求,則可通過(guò)本文件來(lái)管理。(針對(duì)當(dāng)前方案進(jìn)行:配置EASY EAI API頭文件目錄、庫(kù)文件目錄以及配置庫(kù)鏈接參數(shù)):

配置信息如下所示。
| 配置項(xiàng) | 描述 |
| COMMONAPI_DIR | 自定義的變量,指定好common接口的位置,維護(hù)起來(lái)更簡(jiǎn)潔。 |
| ALGORITHM_DIR | 自定義的變量,指定好algorithm接口的位置,維護(hù)起來(lái)更簡(jiǎn)潔。 |
| INCLUDEPATH | QT默認(rèn)變量,向工程指定頭文件的查找路徑。 |
| HEADERS | QT默認(rèn)變量,向工程添加需要編譯的頭文件。 |
| SOURCES | QT默認(rèn)變量,向工程添加需要編譯的源文件。 |
| LIBS | QT默認(rèn)變量,指定對(duì)應(yīng)的easyeai-api庫(kù)文件以及其依賴的編譯參數(shù),不清楚該如何填寫可以進(jìn)入對(duì)應(yīng)接口的api.cmake里查看,并且要注意引用的先后順序關(guān)系。 |
3.3.3 common.pri文件:
本工程文件是第三方的庫(kù)的配置(針對(duì)當(dāng)前方案進(jìn)行:配置第三方頭文件目錄、庫(kù)文件目錄、配置第三方庫(kù)鏈接參數(shù)以及配置源碼目錄):

配置信息如下所示。
| 配置項(xiàng) | 描述 |
| INCLUDEPATH | 向工程指定頭文件的查找路徑 |
| SOURCES | 向工程添加需要編譯的源文件 |
| HEADERS | 向工程添加需要編譯的頭文件 |
3.3.4 ui.pri文件:
本工程文件是交互界面相關(guān)的源碼文件配置,內(nèi)容如下所示:

配置項(xiàng)如下所示。
| 配置項(xiàng) | 需求 |
| SOURCES | 向工程添加需要編譯的源文件 |
| HEADERS | 向工程添加需要編譯的頭文件 |
| FORMS | 向工程添加Qt設(shè)計(jì)師產(chǎn)生的界面文件 |
3.4 build.sh編譯腳本:
3.4.1 路徑定位部分
第一部分用于提取目錄用于編譯操作,內(nèi)容如下所示:(進(jìn)入build.sh腳本所在目錄,并且提取當(dāng)前目錄絕對(duì)路徑,提取當(dāng)前目錄名稱)

3.4.2 編譯參數(shù)部分
第二部分清除操作,清除目錄為Release,內(nèi)容如下所示:(執(zhí)行build.sh腳本時(shí),帶入了參數(shù)“clear”,則清空編譯輸出;帶入了參數(shù)“all”,則重新編譯)

3.4.3 編譯操作
第三部分,編譯直接調(diào)用qmake,內(nèi)容如下所示:(重新編譯,并生成部署目錄)

審核編輯 黃宇
-
開發(fā)板
+關(guān)注
關(guān)注
25文章
6040瀏覽量
110937 -
Qt
+關(guān)注
關(guān)注
2文章
317瀏覽量
40042 -
GUI
+關(guān)注
關(guān)注
3文章
690瀏覽量
42607 -
rk3576
+關(guān)注
關(guān)注
1文章
216瀏覽量
1286
發(fā)布評(píng)論請(qǐng)先 登錄
【作品合集】米爾RK3576開發(fā)板測(cè)評(píng)
【作品合集】靈眸科技EASY EAI Orin Nano(RK3576)開發(fā)板測(cè)評(píng)
米爾RK3576開發(fā)板特惠活動(dòng)!
基于RK3576開發(fā)板的MIPI-DSI使用
迅為RK3576開發(fā)板NPU例程測(cè)試-rknn-toolkit2環(huán)境搭建和使用

基于RK3576開發(fā)板的QT GUI例程
評(píng)論