=====================【事先准备】=======================
①安装python3
sudo apt-get install python3
②复制一份python3 命名为python (编译qtQml用)
-- 打印python3路径--
which python3
--复制并重命名为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哈希函数生成器】
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
--添加环境变量--
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
--添加平台架构,以下内容添加至qmake.conf 文件内sublib段落后--
QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS_RELEASE += -O2 -march=armv8-a -lts
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv8-a -lts
--最好在加上交叉编译链的绝对路径,不然源码编译过程中容易出现报错--
--例如/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)方法一:直接运行法【建议不要放在源码目录调用configure,否则会污染源码】
--创建文件夹,存放编译过程文件--
cd /home/jayuco/
mkdir qt-5.12.9-build
cd /home/jayuco/qt-5.12.9-build/
--执行configure --
(在qt-5.12.9-build文件夹中,运行qt源码里的configure文件,并指定编译后Qt库文件安装路径,及其他参数。-prefix 指定qt安装路径,即qmake安装路径)
./../qt-eve rywhere-src-5.12.9/configure -prefix /home/jayuco/qmakeFile/qt5.12.9-armv8 \ -no xcb
--在弹出的终端窗口选择 o (开源版), y (同意协议)--
--编译源码(make指令任选其一。-j4表示:4块处理器同时编译)
make
make -j4
make -j8
make -j16
--安装qt库
sudo make install
(3)方法二:脚本编译法
--创建编译脚本
cd /home/jayuco/
mkdir qt-5.12.9-build
cd /home/jayuco/qt-5.12.9-build/
gedit auto.sh
--脚本文件内添加以下内容(参数根据需求修改)--
#!/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 \
--执行脚本--
chmod u+x auto.sh
./auto.sh
--编译源码(make指令任选其一。-j16表示:16块处理器同时编译)
make
make -j4
make -j8
make -j16
--安装qt库
sudo make install
以上操作,若无报错,则可在 -prefix 对应的安装目录中找到对应qt库文件。
将qmake添加至Qt Version中,
在kit中添加套件,设置好对应的交叉编译器、Qt Version,即可实现交叉编译。
理论上对python修改别名后,就不用复制拷贝一份python。
① 安装python3:
sudo apt-get install python3
② 添加python3别名:
方法一(每次打开新终端时都会执行,打开bash,添加别名语句并退出,刷新bash文件):
vim ~/.bashrc
alias python='python3'
source ~/.bashrc
方法二(临时效果,重启后失效):
alias python='python3'