Ubuntun平臺QT-RK3399交叉編譯

=====================【事先準備】=======================
①安裝python3

sudo apt-get install python3

復(fù)制一份python3 命名為python (編譯qtQml用)
????-- 打印python3路徑--

which python3

????--復(fù)制并重命名為python

sudo cp -r /usr/bin/python3 /usr/bin/python

安裝依賴庫

sudo apt-get install bison build-essential gperf flex ruby python libasound2-dev libbz2-dev libcap-dev?

????【安裝flex詞法分析器和bison語法分析器】

sudo apt-get install flex

sudo apt-get install bison

????【安裝gperf哈希函數(shù)生成器】

sudo apt-get install gperf

????【安裝libxcb*,[參考]】

sudo apt-get install libxcb*

????【安裝OpenGL】

sudo apt-get install build-essential
sudo apt-get install libgl1-mesa-dev
sudo apt-get install libglu1-mesa-dev
sudo apt-get install libegl1-mesa-dev
sudo apt-get install freeglut3-dev


==================【安裝交叉編譯工具】====================
(1)安裝交叉編譯工具
? ? --解壓--

tar -xvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz

????--添加環(huán)境變量--

sudo gedit /etc/profile

????--最后一行加上--

export PATH="/home/jayuco/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin:$PATH"

????--刷新--

source? /etc/profile

????--查看版本--

aarch64-linux-gnu-gcc -v


====================【源碼配置】======================

(2)交叉編譯qt庫
? ? --解壓--

tar -xvf qt-everywhere-src-5.12.9.tar.xz

????--修改信息 qmake.conf --

cd qt-everywhere-src-5.12.9/qtbase/mkspecs/linux-aarch64-gnu-g++/
ls
gedit qmake.conf

????--添加平臺架構(gòu),以下內(nèi)容添加至qmake.conf?文件內(nèi)sublib段落后--

QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS_RELEASE += -O2 -march=armv8-a -lts
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv8-a -lts

? ? --最好在加上交叉編譯鏈的絕對路徑,不然源碼編譯過程中容易出現(xiàn)報錯--
????--例如/home/jayuco/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/

# modifications to g++.conf
QMAKE_CC = /home/jayuco/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc

QMAKE_CXX = /home/jayuco/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++

QMAKE_LINK? ? ? ? ? ? ? = /home/jayuco/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++

QMAKE_LINK_SHLIB? ? ? ? = /home/jayuco/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++

# modifications to linux.conf
QMAKE_AR? ? ? ? ? ? ? ? = /home/jayuco/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-ar cqs

QMAKE_OBJCOPY? ? ? ? ? = /home/jayuco/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-objcopy

QMAKE_NM? ? ? ? ? ? ? ? = /home/jayuco/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-nm -P

QMAKE_STRIP? ? ? ? ? ? = /home/jayuco/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-strip

load(qt_config)

====================【源碼編譯】======================

(3)方法一:直接運行法【建議不要放在源碼目錄調(diào)用configure,否則會污染源碼】
? ? --創(chuàng)建文件夾,存放編譯過程文件--

cd /home/jayuco/
mkdir qt-5.12.9-build
cd /home/jayuco/qt-5.12.9-build/

????--執(zhí)行configure? --
(在qt-5.12.9-build文件夾中,運行qt源碼里的configure文件,并指定編譯后Qt庫文件安裝路徑,及其他參數(shù)。-prefix 指定qt安裝路徑,即qmake安裝路徑)

./../qt-eve rywhere-src-5.12.9/configure -prefix /home/jayuco/qmakeFile/qt5.12.9-armv8 \ -no xcb

????--在彈出的終端窗口選擇 o (開源版), y (同意協(xié)議)--

? ? --編譯源碼(make指令任選其一。-j4表示:4塊處理器同時編譯)

make
make -j4
make -j8
make -j16

????--安裝qt庫

sudo make install


(3)方法二:腳本編譯法
????--創(chuàng)建編譯腳本

cd /home/jayuco/
mkdir qt-5.12.9-build
cd /home/jayuco/qt-5.12.9-build/
gedit auto.sh

????--腳本文件內(nèi)添加以下內(nèi)容(參數(shù)根據(jù)需求修改)--

#!/bin/sh
./configure \
-prefix /home/jayuco/qmakeFile/qt5.12.9-armv8 \
-confirm-license \
-opensource \
-release \
-make libs \
-xplatform linux-aarch64-gnu-g++ \
-pch \
-qt-libjpeg \
-qt-libpng \
-qt-zlib \
-no-opengl \
-no-sse2 \
-no-openssl \
-no-cups \
-no-glib \
-no-dbus \
-no-xcb \
-no-separate-debug-info \

????--執(zhí)行腳本--

chmod u+x auto.sh
./auto.sh

?--編譯源碼(make指令任選其一。-j16表示:16塊處理器同時編譯)

make
make -j4
make -j8
make -j16

? ? --安裝qt庫

sudo make install


以上操作,若無報錯,則可在 -prefix 對應(yīng)的安裝目錄中找到對應(yīng)qt庫文件。
將qmake添加至Qt Version中,
在kit中添加套件,設(shè)置好對應(yīng)的交叉編譯器、Qt Version,即可實現(xiàn)交叉編譯。


理論上對python修改別名后,就不用復(fù)制拷貝一份python。
① 安裝python3:

sudo apt-get install python3

② 添加python3別名:
方法一(每次打開新終端時都會執(zhí)行,打開bash,添加別名語句并退出,刷新bash文件):

vim ~/.bashrc

alias python='python3'

source ~/.bashrc

? ? ? ? 方法二(臨時效果,重啟后失效):

alias python='python3'

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容