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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

树莓派Raspberry Pi的嵌入式QT平台

發布時間:2024/3/12 c/c++ 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 树莓派Raspberry Pi的嵌入式QT平台 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在樹莓派上設計桌面應用一般情況會依賴于X11環境,如果是Windows平臺,就目前而言,我們也可以選擇Windows 10 IoT環境進行開發。UWP目前也支持在樹莓派2上進行部署。至于常見的Linux X11或者Wayland環境,相比之下比較冗余,但是QT Emebedded直接利用Framebuffer,顯示GUI,會更加輕便。利用樹莓派 Open GL支持,更可以開發出3D效果,是工業領域開發設計可視化設備的不錯選擇,更是物聯網設備一個比較好的交互方案。

1. 準備工具

?

我們要在Windows上對QT 5.5進行交叉編譯,所以我們需要準備以下工具:

  • 樹莓派 1代或者2代,官方的Rasbian系統(基于Debian),目前最新版本基于Debian 8 Jessie,我們可以從官方站點下載最新版本?https://downloads.raspberrypi.org/raspbian_latest
  • 下載交叉編譯工具集 cross-toolchain (http://gnutoolchains.com/raspberry/) 。如果你是基于Jessie的Rasbian,選擇?raspberry-gcc-4.9.2-r2.exe。 如果是Wheezy,你需要選擇?raspberry-gcc4.6.3.exe。安裝toolchain.

  • 下載MinGW toolchain (http://gnutoolchains.com/mingw32)并安裝,我們需要在Windows中編譯QMake

  • 下載安裝Python 2.7 for Windows (https://www.python.org/ftp/python/2.7.11/python-2.7.11.msi) 并且確保Python執行路徑寫入了系統環境變量PATH
  • 下載QT 5.5 源代碼,http://download.qt.io/archive/qt/5.5/5.5.0/single/

?

?

2. 安裝Rasbian

?

大家可以參考這個鏈接?https://www.raspberrypi.org/documentation/installation/installing-images/windows.md?來安裝Rasbian,不過簡單來講,在Windows下安裝Rasbian只需要用WinfFlashTool 或者?Win32DiskImager 將系統鏡像刷入一張不小于8GB的SD

  • WinFLASHTool:?http://winflashtool.sysprogs.com/
  • Win32DiskImager:?https://sourceforge.net/projects/win32diskimager/

將SD插入樹莓派,接上電源和HDMI,啟動系統,默認用戶pi,密碼raspberry登入系統 (建議打開Raspi-config配置系統默認進入CLI,修改管理員密碼,配置GPU內存128MB,然后重啟)。

運行命令進行系統更新。

sudo apt-get update

sudo apt-get upgrade

建議:先預先安裝下面庫,交叉編譯Qt,xcb依賴這些庫,默認Raspbian中可能不帶

?

sudo apt-get install?libxcb1 libxcb1-dev libx11-xcb1 libx11-xcb-dev libxcb-keysyms1 libxcb-keysyms1-dev libxcb-image0 libxcb-image0-dev libxcb-shm0 libxcb-shm0-dev libxcb-icccm4 libxcb-icccm4-dev libxcb-sync1 libxcb-sync-dev libxcb-render-util0 libxcb-render-util0-dev libxcb-xfixes0-dev libxrender-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-glx0-dev

你可能會碰到某些庫無法下載,你可以手動下載然后通過 dpkg -i 來安裝。

3. 同步Linux環境

在Windows中交叉編譯Qt,需要先同步樹莓派Linux 庫、頭文件到sysroot下。在<sysgcc>\Raspberry\TOOLS中打開?UpdateSysroot.bat??(<sysgcc>為toochain的安裝目錄,例如C:\SysGCC)

在Targeted Linux machine輸入選擇你的樹莓派,如上圖輸入你需要同步的目錄,建議同步/opt目錄?(在輸入框里按 Ctl+Enter換行,直接按Enter默認為開始同步,請注意),里面包含了OpenGL的頭文件,我們在編譯Qt需要引用。?注意,千萬不要同步/etc目錄,因為他會復寫本地的/etc/ld.so.conf文件,會破化Windows下編譯時的頭文件引用。如果不小心同步了,我們需要重新安裝 ?aspberry-gcc4.6.3.exe?來提取恢復此文件。

?

4. 配置編譯qmake

我們需要先解壓縮下載下來的qt源碼包,比如解壓縮在C:\qt-everywhere-opensource-src-5.5.0 (可以用7-zip來解壓縮)。或者打開MinGW32下的msys (<sysgcc>\MinGW32\msys\1.0\msys.bat) 進入你的qt代碼下載目錄(例如 C:\download)

然后確認代碼全部解壓縮到當前目錄下,確認gccarm-linux-gnueabihf-gcc工具的路徑

如果沒有找到gcc和arm-linux-gnueabihf-gcc,你可以設置你的Windows系統PATH環境變量,加入 c:\SysGCC\Raspberry\bin和c:\SysGCC\MinGW32\bin

打開?qt-everywhere-opensource-src-5.5.0\qtbase\mkspecs\linux-arm-gnueabi-g++下的qmake.conf文件,將所有的arm-linux-gnueabi-替換成arm-linux-gnueabihf-,如下圖:

?

好了,現在我們可以開始編譯Qt。由于Qmake編譯腳本的一個bug,我們無法直接交叉編譯Raspberry版本,需要分為兩步,先編譯Windows Qmake然后再交叉編譯Raspberry Qt。

打開?qt-everywhere-opensource-src-5.5.0\qtbase\mkspecs\win32-g++?下的qmake.conf文件,在 CXXFLAGS 后面添加?-U__STRICT_ANSI__?標記

輸入下面的命令開始編譯Qmake for Windows

cd /c/download

mkdir qt-build

cd qt-build

../qt-everywhere-opensource-src-5.5.0/configure -platform win32-g++ -xplatform linux-arm-gnueabi-g++ -release -opengl es2 -device linux-rasp-pi2-g++ -sysroot C:/SysGCC/Raspberry/arm-linux-gnueabihf/sysroot -prefix /usr/local/qt5

選擇 'o' Open Source和yes同意GPLV2&3許可證

-opengl es2參數:配置Qt直接使用Raspberry framebuffer 而不是X11

全部配置完成后,你可以用命令?qtbase/bin/qmake -v?檢查下qmake是否配置成功

?

5. 交叉編譯Qt for Raspberry

現在我們打開?C:\download\qt-everywhere-opensource-src-5.5.0\qtbase\configure?文件,找到3900行左右 "Creating qmake...",修改為:

if [ '!' -f "$outpath/bin/qmake.exe" ]; then

注意qmake.exe后面的.exe擴展名和最后的then。使用已經編譯好的Windows qmake而不用再去生成qmake

好了,到此我們做好了所有的準備工作,就要開始編譯Qt for Raspberry Pi了。在這之前,建議大家再次確認下是否有遺漏或者錯誤,不然一次編譯就需要十幾個小時,中斷后再來很費時間。

回到msys窗口,進入qt-build目錄,輸入下面的命令開始配置:

../qt-everywhere-opensource-src-5.5.0/configure -platform win32-g++ -xplatform linux-arm-gnueabi-g++ -release -opengl es2 -device linux-rasp-pi2-g++ -sysroot C:/SysGCC/Raspberry/arm-linux-gnueabihf/sysroot -prefix /usr/local/qt5?-device-option CROSS_COMPILE=C:/SysGCC/Raspberry/bin/arm-linux-gnueabihf- -qt-xcb

同樣輸入 "o" 和 "yes" 使用開源版本和同意許可證內容。

可以忽略出現的警告。但如果出現缺少庫依賴的錯誤,請回到第3步,同步Linux環境,檢查是否已經同步了必要的目錄。檢查是否在Raspbian中遺漏了必須的庫。可以按照輸出提示,去檢查Qt環境的依賴庫,并且在Raspbian中手動安裝,然后再進行一次同步。

你也可以檢查 <sysgcc>\Raspberry\arm-linux-gnueabihf\sysroot\etc\ld.so.conf文件,是否包含了下面配置

/opt/vc/lib
/lib/arm-linux-gnueabihf
/usr/lib/arm-linux-gnueabihf
/usr/lib/arm-linux-gnueabihf/libfakeroot
/usr/local/lib

如果你看到了下面的內容,那么你就可以輸入 make && make install 開始編譯安裝。不出意外,整個過程打開需要15小時左右,具體視機器性能,反正我花了20小時完成所有編譯安裝。默認會安裝到 <sysgcc>\Raspberry\arm-linux-gnueabihf\sysroot\usr\local\qt5 目錄。

?

6. 同步Qt到Raspbian并測試

等待一天后,編譯安裝完成,我們就可以將安裝在本地PC上的Qt復制到Raspberry中。不建議使用SFTP工具進行上傳,因為SFTP上傳無法將文件屬性復制過去。這里建議使用 toolchain 中自帶的SmarTYY來完成上傳。打開 <sysgcc>\Raspberry\TOOLS\PortableSmartty下的?SmarTTY.exe 工具,配置連接到你的樹莓派。

cd/usr/local

sudomkdirqt5 sudo chown pi qt5

創建Qt 5的安裝目錄,然后打開SmarTYY菜單,選擇上傳目錄。

配置本地目錄為 <sysgcc>\Raspberry\arm-linux-gnueabihf\sysroot\usr\local\qt5, 遠程目錄為 /usr/local/qt5,開始上傳

完成后,我們就可以在SSH中進行測試,進入 /usr/local/qt5/examples/widgets/richtext/textedit 運行例子 ./textedit。這時如果你的樹莓派連接著顯示器,你就會看到一個文本編輯器顯示出來,接上鼠標鍵盤,你就可以進行圖形化界面操作了。

SSH端:

樹莓派連接的顯示器:

?

?

下一篇:適用于樹莓派Raspberry Pi的嵌入式QT平臺(二) -- 在Windows下用Qt Creator開發編譯Raspberry Qt 5應用程序


大部分內容參考自:http://visualgdb.com/tutorials/raspberry/qt/embedded/



接著上篇 "交叉編譯安裝Qt Embedded 5.5",我們已經成功在Windows上交叉編譯了Raspberry Pi的嵌入式Qt 5.5。那么我們就可以開始開發基于Qt 5的應用程序。接下來,我們需要在Windows上搭建必要的Qt開發工具,首當其沖就是官方的Qt Creator,不僅提供了原生的C++編輯器,Qt界面設計器,而且還可以集成現有的 Qmake, gcc 甚至于Visual Studio C++編譯器來配置編譯Qt項目,自帶的QML解釋器可以快速的將QML內容翻譯成代碼并集成子啊項目中;而且利用自帶的GDB可以進行代碼運行時調試。

下面,我們就利用Windows平臺上的Qt Creator與我們已經準備好的樹莓派中的 Qt 5.5 來集成開發基于Raspberry Pi的Qt Embedded應用程序。過程中,我們需要交叉編譯Raspberry Pi版的GDB用于遠程調試。

?

1. 準備工作

  • Qt Creator for Windows:http://download.qt.io/official_releases/qtcreator/3.6/3.6.0/qt-creator-opensource-windows-x86-3.6.0.exe
  • 或者我們也可以下載安裝?Qt 5.5.1 for Windows 32-bit (MinGW 4.9.2):http://download.qt.io/official_releases/qt/5.5/5.5.1/qt-opensource-windows-x86-mingw492-5.5.1.exe
    里面已經帶了Qt Creator
  • 當然,我們也可以選擇Qt for Windows (VS編譯版本)

安裝Qt for Windows,我們可以注冊一個Qt賬號,然后選擇安裝目錄并繼續。

?

2. 配置編譯環境

安裝完成后,打開Qt Creator。在Creator中的項目,類似于 Xcode,我們需要配置好多種目標環境,不同的項目需要配置指定目標環境,就可以針對目標編譯生成。

打開Tools -> Options...

選擇Devices,點擊Add..增加一個Generic Linux Device,然后Start Wizard,填入設備名字,網絡地址以及用戶名密碼等。

完成后,會自動開始測試設備連接。

然后我們可以開始配置Build & Run,選擇Qt Versions,添加一個Qt Version,選擇我們之前編譯好的Windows下的qmake:

然后添加一個Compiler,選擇Compilers選項卡,Add.. 一個MinGW類型的編譯器,選擇<sysgcc>\Raspberry\bin\arm-linux-gnueabihf-g++.exe

添加一個CMake,<sysgcc>\Raspberry\bin\make.exe

好了,最后我們就需要配置出一個Kit,包含一個目標環境所需要的qmake,設備,CMake,以及配置文件。點擊Kits選項卡:

  • Device type:Generic Linux Device
  • Device:選擇你剛才新建的設備
  • Sysroot:<sysgcc>\Raspberry\arm-linux-gnueabihf\sysroot
  • Compiler:選擇新建的編譯器
  • Qt version:選擇Raspberry Pi的Qt
  • Qt mkspec:<sysgcc>\Raspberry\arm-linux-gnueabihf\sysroot\usr\local\qt5\mkspecs\devices\linux-rasp-pi2-g++
  • CMake Tool:選擇新建的CMake

保存新的Kit配置。

因為Qt Creator的Debugger GDB需要有Python支持,但是MinGW中提供的GDB均沒有支持Python,所以我們目前無法指定Debugger,需要之后交叉編譯一個Raspebrry Pi支持的GDB with Python才可以作為Debugger來調試。

?

3. 新建Qt for Raspberry Pi項目并編譯測試

點擊 File -> New File or Project,打開新建項目向導,選擇Qt Widgets項目模板,填入項目名稱,務必在Kit Selection中選擇才新建的Kit環境。

?

完成代碼后,我們可以通過左下側的編譯運行按鈕直接編譯輸出到Raspberry Pi

目前我們只能使用Run,還無法使用調試器。我們可以打開Qt Examples中的項目來進行測試。

上篇講到“在Windows下用Qt Creator開發編譯Raspberry Qt 5應用程序”,由于目前Qt Creator所支持的GDB需要有Python支持,但是目前MinGW中的GDB都是無Python支持的,所以我們需要自己下載GDB代碼并且編譯成針對Raspberry Pi支持Python的版本。

?

1. 準備工作

?

  • 下載MinGW最新版本:https://sourceforge.net/projects/mingw/files/Installer/?從sourceforge下載?mingw-get-setup.exe,這是一個MinGW軟件包安裝管理器,類似于Debian上的新得利包管理器,有一個GUI版本可以可視化的管理安裝MinGW環境的軟件包
  • 從 Qt 站點下載?http://download.qt.io/development_releases/qtcreator/3.6/3.6.0-rc1/qt-creator-opensource-src-3.6.0-rc1.zip?下載Qt Creator 代碼,里面包含了配置編譯GDB的腳本。
  • 從GNU站點下載GDB源碼(推薦GDB 7.1.0):http://ftp.gnu.org/gnu/gdb/gdb-7.10.tar.xz
  • 從 Qt 站點下載GDB所依賴的Python 2.7庫:http://download.qt.io/development_releases/prebuilt/gdb/build-prerequisites/python.zip
  • 從其他站點下載其他所依賴的庫源碼:
    • libiconv 1.14:?http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
    • expat 2.1.0:?https://sourceforge.net/projects/expat/files/expat/2.1.0/expat-2.1.0.tar.gz/download

解壓縮Qt Creator源碼,放入C:\Download目錄,并且將其他下載的庫及代碼放入?C:\Download\qt-creator-opensource-src-3.6.0-rc1\dist\gdb\source?(在gdb目錄下新建一個source目錄)

2. 配置編譯環境

有人要說,為什么不用之前toolchain for Windows的MinGW32來編譯,因為經過本人多次嘗試,發現toolchain中的MinGW版本過低,有一個time.h的結構體聲明bug導致我們GDB編譯無法進行。所以我們需要更新到最新的MinGW版本來編譯GDB

安裝MinGW-get到C:\MinGW

完成后打開?C:\MinGW\bin\mingw-get.exe,選擇 Basic Setup->勾選右側列表中 mingw-developer-toolkit, mingw32-base,mingw32-gcc-g++以及msys-base軟件包,點擊菜單Installation->Apply Changes 完成軟件包的安裝。

安裝軟件完成后,打開?C:\MinGW\msys\1.0\msys.bat 進入MinGW shell環境。

?

3. 配置編譯GDB with Python for Win/Linux/ARM

打開?C:\Download\qt-creator-opensource-src-3.6.0-rc1\dist\gdb\Makefile.mingw?文件

在targets那一行添加Raspberry Pi的ABI:arm-linux-gnueabihf,然后保存文件。打開msys shell,進入目錄?C:\Download\qt-creator-opensource-src-3.6.0-rc1\dist\gdb,make這個Makefile.mingw開始編譯:

注意:過程中可能會下載一些軟件包,確保你的網絡連接的穩定,有條件的可以FQ連上VPN。如果下載一直出現問題,則可以選擇手動下載那些軟件包放入source目錄中。

?

當編譯打包全部完成后(大概會花一個小時編譯),你可以在?C:\Download\qt-creator-opensource-src-3.6.0-rc1\dist\gdb\qtcreator-gdb-7.10?找到編譯好的GDB,并且也有一個打包好的?qtcreator-gdb-7.10-mingw32_nt-6.2-i686.tar.gz?在\dist\gdb目錄下。

?

4. 在Qt Creator中配置并聯機調試Qt for Raspberry Pi應用

打開Qt Creator,進入Tools->Options...->Build & Run->Debugger,添加一個Debugger,選擇剛才編譯出來的gdb.exe,如下圖,保存后。

打開Kits,選擇之前配置好的Rasspberry Pi的開發Kit,在Debugger下選擇配置好的Debugger,點擊OK保存關閉。

?

好了,至此,Qt Creator就可以使用按鈕進行聯機調試,可以設置斷點,查看運行時內存,線程狀態。GDB會向Raspberry Pi推送一個gdbserver,并且聯合本地的GDB進行調試。下面面是我調試一個Qt for Raspberry Pi應用時的截圖:


總結

以上是生活随笔為你收集整理的树莓派Raspberry Pi的嵌入式QT平台的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 麻豆视频官网 | 特级西西444www高清大视频 | 欧美日韩黄色一级片 | 日韩在线观看网址 | 韩国三级中文字幕 | 天天干天天操天天插 | 免费观看黄色网 | 99热最新网址 | 久久久久久一 | 四色成人av永久网址 | 齐天大性床战铁扇公主 | 一级aaaa毛片 | 黄色小说在线看 | 国产精品69久久久久孕妇欧美 | 日韩av一区在线播放 | 欧美xxxx888 | 在线天堂www在线国语对白 | 亚洲午夜无码久久 | 日韩无码电影 | 亚洲午夜精品久久久久久app | 瑟瑟视频免费观看 | 亚洲爽爆 | 视频在线不卡 | 午夜爽爽影院 | 欧美激情视频在线观看 | 亚洲少妇30p | 精品国产一区二区三区性色av | 午夜啪视频 | 六月婷婷中文字幕 | 欧美日本高清 | 国产三级一区二区三区 | 精品动漫一区二区三区 | 在线视频区 | www.999热 | 久久久久极品 | 一本色道久久88亚洲精品综合 | 日本黄色片在线播放 | 黄色片www | 久久中文字幕在线 | 成人av电影免费观看 | 国产精品久久久久久久久久久久久久久久久 | 顶级黑人搡bbw搡bbbb搡 | 精品久草| 久久国产成人精品 | 国产一区二区三区视频在线 | 17c在线| 国产黄色大片视频 | 国产黄a三级三级看三级 | 欧美性猛交xxxx乱大交蜜桃 | 国产高清第一页 | 影音先锋成人网 | 免费av在线播放 | 91av小视频| 欧美二区三区 | 久久久精品视频在线 | 免费在线国产精品 | 人人爽爽爽 | 伊人操 | 国产日本精品 | 亚洲国产一区二区在线观看 | 国内精品99 | 久色视频在线播放 | 99久在线精品99re8热 | 中文字幕欧美专区 | 亚洲AV午夜成人片 | 国产毛片91 | 国产黄 | 亚洲欧美一区二区激情 | 国产传媒av| 久草资源在线观看 | 久久9966| 成人黄色免费网 | 欧美日韩视频无码一区二区三 | 国产午夜精品久久 | 久久亚洲精品小早川怜子 | 国产一区二区不卡在线 | 婷婷色在线播放 | 亚洲av无码乱码国产精品 | 久草网站 | 亚欧美视频 | 中文字幕av影视 | 四虎在线视频免费观看 | 精品免费久久久 | 手机看片1024日韩 | 日韩美女一区 | 国产在线一卡二卡 | 99re久久精品国产 | 亚州av网| 一区二区三区免费视频观看 | 中文字幕在线视频不卡 | 老鸭窝一区二区 | 黄色特级视频 | 久久久久久亚洲中文字幕无码 | 校花被c到呻吟求饶 | 国产精品v欧美精品v日韩 | www国产亚洲精品久久麻豆 | 国产精品久久久久高潮 | 懂色av成人一区二区三区 | 亚洲日本网站 |