1. 方案簡介
EASY EAI Orin-Nano安裝的是帶有xfce桌面環(huán)境的Debian系統(tǒng),因此在上面運行的Qt應用程序可被窗口管理器接管。如下圖所示:
而且RK3576的CPU性能也十分強大,因此Qt應用程序可直接在開發(fā)板上進行編譯,這樣能達到最優(yōu)的兼容性。
2. 快速上手
如果您初次閱讀此文檔,請閱讀:《入門指南/源碼管理及編程介紹/源碼工程管理》,按需管理自己工程源碼(注:此文檔必看,并建議采用【遠程掛載管理】方式,否則有代碼丟失風險!!!)。
2.1 源碼工程下載
先在PC虛擬機定位到nfs服務目錄,再在目錄中創(chuàng)建存放源碼倉庫的管理目錄:
cd ~/nfsroot mkdir GitHub cd GitHub
再通過git工具,在管理目錄內克隆遠程倉庫(需要設備能對外網進行訪問)
git clone https://github.com/EASY-EAI/EASY-EAI-Toolkit-3576.git

注:
* 此處可能會因網絡原因造成卡頓,請耐心等待。
* 如果實在要在gitHub網頁上下載,也要把整個倉庫下載下來,不能單獨下載本實例對應的目錄。
2.2 開發(fā)環(huán)境搭建
通過adb shell進入板卡開發(fā)環(huán)境,如下圖所示。
若未曾在此開發(fā)板上開發(fā)過Qt程序,需要先在開發(fā)板上安裝以下幾個軟件包:
sudo apt-get update sudo apt-get install qtbase5-dev
通過以下命令,把nfs目錄掛載上nfs服務器。
mount -t nfs -o nolock : /home/orin-nano/Desktop/nfs/

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

2.4 例程運行及效果
執(zhí)行下方命令,運行示例程序:
./Release/QDemo
執(zhí)行例程,桌面會彈出一個基于Qt庫開發(fā)的應用窗口,效果如下所示。
3. 開發(fā)指南
3.1 Toolkit倉庫介紹
3.2 示例文件&目錄結構
3.2.1 開發(fā)實例介紹
每個解決方案就是一個獨立的項目,項目使用qmake構建自動編譯部署。一個最簡單的Qt項目至少要包含以下元素:build.sh、*.pro、main.cpp、mainWidget.ui、mainWidget.cpp、mainWidget.h,如下所示。
具體介紹如下所示。
組成部分 | 描述 |
build.sh | 編譯腳本,用于管理生成可執(zhí)行文件后的部署準備工作,用戶可自定義shell命令 |
QDemo.pro | 工程管理文件,用于組織整個工程結構,指導qmake生成Makefile。 |
QResource | 用于存放貼圖資源,樣式表資源等。 |
resource.qrc | 工程管理文件,用于組織管理貼圖資源,樣式表資源等。 |
QSrcCode | 用于存放工程源代碼。 |
api.pri | 工程管理文件,用于組織管理“對easyeai-api再封裝的子模塊”相關源碼。 |
common.pri | 工程管理文件,用于組織管理“第三方子模塊”或“業(yè)務邏輯”相關源碼。 |
ui.pri | 工程管理文件,用于組織管理“UI界面效果”相關源碼。 |
3.3 *.pro和*.pri文件解析
3.3.1 *.pro文件:
第一部分為輸出配置,如下所示:
配置信息如下所示。
配置項 | 描述 |
TARGET | 輸出文件名稱 |
TEMPLATE | 輸出文件類型,app為可執(zhí)行文件,lib為庫文件 |
第二部分為全局編譯選項配置,如下所示:
配置項 | 描述 |
LIBS | 全局鏈接庫,通常是本Ubuntu系統(tǒng)提供的庫 |
QMAKE_CXXFLAGS | 全局C++編譯參數(shù),可傳入一些宏或者C++編譯配置 |
第三部分為加載自定義子模塊,如下所示:
第四部分為加載資源管理,如下所示:
第五部分為指定文件輸出目錄,如下所示:
3.3.2 api.pri文件:
本工程文件是對我司的功能組件庫的管理,若用戶有“對我司的功能組件庫進行再封裝”的需求,則可通過本文件來管理。(針對當前方案進行:配置EASY EAI API頭文件目錄、庫文件目錄以及配置庫鏈接參數(shù)):
配置信息如下所示。
配置項 | 描述 |
COMMONAPI_DIR | 自定義的變量,指定好common接口的位置,維護起來更簡潔。 |
ALGORITHM_DIR | 自定義的變量,指定好algorithm接口的位置,維護起來更簡潔。 |
INCLUDEPATH | QT默認變量,向工程指定頭文件的查找路徑。 |
HEADERS | QT默認變量,向工程添加需要編譯的頭文件。 |
SOURCES | QT默認變量,向工程添加需要編譯的源文件。 |
LIBS | QT默認變量,指定對應的easyeai-api庫文件以及其依賴的編譯參數(shù),不清楚該如何填寫可以進入對應接口的api.cmake里查看,并且要注意引用的先后順序關系。 |
3.3.3 common.pri文件:
本工程文件是第三方的庫的配置(針對當前方案進行:配置第三方頭文件目錄、庫文件目錄、配置第三方庫鏈接參數(shù)以及配置源碼目錄):
配置信息如下所示。
配置項 | 描述 |
INCLUDEPATH | 向工程指定頭文件的查找路徑 |
SOURCES | 向工程添加需要編譯的源文件 |
HEADERS | 向工程添加需要編譯的頭文件 |
3.3.4 ui.pri文件:
本工程文件是交互界面相關的源碼文件配置,內容如下所示:
配置項如下所示。
配置項 | 需求 |
SOURCES | 向工程添加需要編譯的源文件 |
HEADERS | 向工程添加需要編譯的頭文件 |
FORMS | 向工程添加Qt設計師產生的界面文件 |
3.4 build.sh編譯腳本:
3.4.1 路徑定位部分
第一部分用于提取目錄用于編譯操作,內容如下所示:(進入build.sh腳本所在目錄,并且提取當前目錄絕對路徑,提取當前目錄名稱)
3.4.2 編譯參數(shù)部分
第二部分清除操作,清除目錄為Release,內容如下所示:(執(zhí)行build.sh腳本時,帶入了參數(shù)“clear”,則清空編譯輸出;帶入了參數(shù)“all”,則重新編譯)
3.4.3 編譯操作
第三部分,編譯直接調用qmake,內容如下所示:(重新編譯,并生成部署目錄)
審核編輯 黃宇
-
開發(fā)板
+關注
關注
25文章
5570瀏覽量
102880 -
Qt
+關注
關注
1文章
313瀏覽量
38867 -
GUI
+關注
關注
3文章
677瀏覽量
40829 -
rk3576
+關注
關注
1文章
153瀏覽量
601
發(fā)布評論請先 登錄
米爾RK3576開發(fā)板特惠活動!

基于RK3576開發(fā)板的MIPI-DSI使用

評論