RK3588開發筆記(一):基於方案商提供的宿主機交叉編譯Qt5.12.10

前言

  rk3588開發車機,方案上提供的宿主機只是編譯rk sdk的版本,並未編譯好Qt,那麼需要自行交叉編譯Qt系統。選擇的Qt的版本爲5.12.10。

 

宿主機準備

  下載並打開宿主機,只有sdk,並沒有交叉編譯的Qt。
  在這裏插入圖片描述

 

Qt準備

  下載Qt5.12.10的開源軟件(方案商提供)。
  在這裏插入圖片描述

 

交叉編譯工具準備

  下載提供的交叉編譯工具鏈(方案商提供)。
  在這裏插入圖片描述

 

編譯sysroot文件系統準備

  下載編譯依賴的目標編譯系統(方案商提供)
  在這裏插入圖片描述

 

開始交叉編譯Qt

步驟一:解壓編譯工具鏈

cd ~/tool
tar xvf aarch64-rockchip1031-linux-gnu.tar.gz

  在這裏插入圖片描述

  發現單獨提供的tool沒有bin下的g++工具,於是只好對比一下,發現開發板給過來是一樣的,有bin:
  在這裏插入圖片描述

  於是copy過去,直接使用sdk的tool了:
  在這裏插入圖片描述

  在這裏插入圖片描述

步驟二:配置好系統環境,引入交叉編譯工具

  建立一個env.sh腳本:
  在這裏插入圖片描述

#!/bin/sh
export PATH=$PATH:/home/ht/work/tool/toolchain/bin

  使用路徑:

source env.sh

  在這裏插入圖片描述

  在這裏插入圖片描述

  在這裏插入圖片描述

  發現與方案上給過來的平臺不匹配,但是都是連接到同一個目標了,先直接幹試一試。
  在這裏插入圖片描述

步驟三:解壓sysroot

  在編譯過程中,基本是不會依賴編譯目標系統得庫,所以一般都無需配置sysroot,如果依賴,比如編譯支持ffmpeg的opencv則依賴交叉編譯系統已經編譯完的ffmpeg,則講ffmpeg放入sysroot,也可以直接單獨引入額外的庫,方式很多,不深究。
  在這裏插入圖片描述

步驟四:解壓qt源碼

cd ~/work/src
tar xvf qt-everywhere-src-5.12.10.tar.xz

  在這裏插入圖片描述

  在這裏插入圖片描述

步驟五:配置Qt

  修改平臺配置文件:

cd /home/ht/work/src/qt-everywhere-src-5.12.10/qtbase/mkspecs/linux-aarch64-gnu-g++
gedit qmake.conf

  修改編譯器的名稱:
  在這裏插入圖片描述

  然後配置(這裏使用平臺配置,則需要定位平臺配置文件,還有一種方式直接替換交叉編譯器的前綴,但此處不是):
  這裏建立個文件,方便調試,切換到qt的源碼文件夾:
  在這裏插入圖片描述

   在這裏插入圖片描述

#!/bin/bash
./configure \
  -prefix /home/ht/work/build-qt5.12.10 \
  -sysroot /home/ht/work/sysroot \
  -confirm-license \
  -opensource \
  -release \
  -make libs \
  -xplatform linux-aarch64-gnu-g++ \
  -no-opengl \
  -no-feature-completer \
  -verbose

  然後配置:

chmod +x mk.sh
./mk.sh

  在這裏插入圖片描述
  這裏有一次入坑編譯失敗,是路徑用戶設置爲yang,實際爲ht,所以root路徑找不到的導致的:
  在這裏插入圖片描述

  Ht爲用戶,/home/ht/xxx配置成功了:
  在這裏插入圖片描述

步驟六:編譯Qt

  先使用多線程:

make -j8

  在這裏插入圖片描述
  在這裏插入圖片描述

  再跑一次單make。(會出現各種各樣的錯誤,同樣的虛擬機同樣的代碼也會有不同的錯誤,遇到問題的時候,首先嚐試解決,解決不了想辦法繞過去,如果真的遇到兼容性問題,就不是一下能解決的,所以一般都是提供編譯好的虛擬機了)。

make

  在這裏插入圖片描述

步驟七:安裝Qt

make install
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章