=====================【事先準備】=======================
①安裝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-gccQMAKE_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 cqsQMAKE_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'