性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

Ubuntu24搭建針對(duì)樹(shù)莓派的Qt5.15交叉編譯環(huán)境

1. 前言u(píng)nsetunset

需要在樹(shù)莓派上開(kāi)發(fā)基于Qt的應(yīng)用程序。想要開(kāi)發(fā)編譯程序,前提是必須有開(kāi)發(fā)環(huán)境。根據(jù)這需求嘗試了兩種方式:

  1. 直接在樹(shù)莓派上安裝Qt相關(guān)庫(kù)及環(huán)境,直接在樹(shù)莓派上編譯應(yīng)用程序并運(yùn)行。
  2. 在ubuntu上搭建Qt相關(guān)的交叉編譯環(huán)境,交叉編譯后放在樹(shù)莓派運(yùn)行。

方式1的好處是樹(shù)莓派上聯(lián)網(wǎng)后需要什么庫(kù)直接通過(guò)apt-get安裝,簡(jiǎn)單方便、省時(shí)省力。缺點(diǎn)是在上面直接開(kāi)發(fā)Qt相關(guān)的程序,顯得有些捉襟見(jiàn)肘,不是很絲滑。最主要的一個(gè)原因是還有不能浪費(fèi)了我這個(gè)高配置的電腦,果斷選擇了在Ubuntu上搭建相關(guān)的開(kāi)發(fā)環(huán)境(這符合平時(shí)的開(kāi)發(fā)習(xí)慣)。

unsetunset2. 確定版本unsetunset

要搭建對(duì)應(yīng)樹(shù)莓派上的交叉編譯環(huán)境,必須要對(duì)應(yīng)好GCC和Qt的版本,防止版本不一致導(dǎo)致的莫名奇妙的問(wèn)題。

  • 系統(tǒng): Debian11
  • GCC: gcc version 10.2.1 20210110 (Debian 10.2.1-6)
  • Qt: 5.15.2

下載需要的軟件包

  • 10.2.1-2021.01-x86_64_aarch64-linux-gnu下載(https://snapshots.linaro.org/components/toolchain/binaries/10.2-2021.01-3/aarch64-linux-gnu/)
  • Qt5.15.2官方下載(https://download.qt.io/archive/qt/5.15/)

unsetunset3. 搭建交叉編譯環(huán)境unsetunset

  • 系統(tǒng):Ubuntu24.04

解壓工具鏈到指定目錄

tar xvf gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu.tar.xz -C /opt 

解壓Qt源碼到指定目錄

tar xvf qt-everywhere-src-5.15.2.tar.xz -C /opt

4. 主機(jī)編譯(ubuntu24.04)unsetunset

安裝必要的環(huán)境

sudo apt-get install bison python gperf pkg-config gdb-multiarch

創(chuàng)建sysroot目錄

我們交叉編譯的程序是部署到樹(shù)莓派板卡環(huán)境運(yùn)行,需要構(gòu)建和樹(shù)莓派一樣的庫(kù)環(huán)境,我們需要?jiǎng)?chuàng)建一個(gè)sysroot目錄, 在編譯Qt時(shí)指定了 -sysroot=dir該邏輯目錄,編譯過(guò)程中需要引用的庫(kù),頭文件,就到 dir/xx 目錄下去找。

兩種方式:

  1. 直接復(fù)制樹(shù)莓派上的文件到sysroot
  2. 通過(guò)rsync同步樹(shù)莓派文件到sysroot

我采用第二種方式:

# ubuntu24創(chuàng)建sysroot目錄
mkdir -p ~/sysroot/usr
mkdir -p ~/sysroot/lib

cd ~
# 根據(jù)實(shí)際板卡IP和用戶,修改下面
rsync -avz --rsync-path="sudo rsync" --delete raspberry@192.168.100.10:/lib sysroot/lib
rsync -avz --rsync-path="sudo rsync" --delete raspberry@192.168.100.10:/usr/include sysroot/usr
rsync -avz --rsync-path="sudo rsync" --delete raspberry@192.168.100.10:/usr/lib sysroot/usr

編寫編譯腳本

編譯

# 直接運(yùn)行腳本
./autobuild.sh

# 生成的Qt庫(kù)位于腳本指定目錄下
聲明:本內(nèi)容為作者獨(dú)立觀點(diǎn),不代表電子星球立場(chǎng)。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請(qǐng)聯(lián)系:editor@netbroad.com
覺(jué)得內(nèi)容不錯(cuò)的朋友,別忘了一鍵三連哦!
贊 2
收藏 3
關(guān)注 37
成為作者 賺取收益
全部留言
0/200
成為第一個(gè)和作者交流的人吧