1. 安装交叉编译器GCC
1.1 下载地址
gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz
1.2 解压至/opt目录下
sudo tar -xvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz -C /opt
1.3 配置路径 sudo gedit~/.bashrc,在最后一行加上
export PATH=/opt/gcc-linaro-7.5.0-2019.12-x86-64_aarch64-linux-gnu/bin/:$PATH
1.4 重启令其生效
sudo reboot
1.5 重启后打开命令行输入
aarch64-linux-gnu-gcc -v
查看GCC交叉编译器版本信息,能够正常显示版本信息,则安装成功。
2. 下载QT5.12.9
下载地址:http://download.qt-project.org/archive/qt/5.12/5.12.9/single//
下载完成后,解压
sudo tar -xvf qt-everywhere-src-5.12.9.tar.xz
进入解压目录,新建一个脚本
cd qt-everywhere-src-5.12.9/
touch autoConfigure.sh
chmod 777 autoConfigure.sh
编辑autoConfigure.sh(可参考该目录的configure进行配置),下面是我的配置:
#!/bin/sh
./configure \
-prefix /opt/qt-5.12.9-arm \
-confirm-license \
-opensource \
-release \
-make libs \
-xplatform linux-aarch64-gnu-g++ \
-pch \
-qt-libjpeg \
-qt-libpng \
-qt-zlib \
-no-opengl \
-no-sse2 \
-no-cups \
-no-glib \
-no-dbus \
-no-xcb \
-no-separate-debug-info \
-prefix 是QT编译后文件目录
-xplatform是arm编译器类型,在qtbase/mkspecs
目录下,根据自己交叉编译工具进行相应的替换:
接着输入命令
sudo gedit qtbase/mkspecs/linux-aarch64-gnu-g++/qmake.conf
增加一下内容(Jetson-nano是armv8架构)
QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS_RELEASE += -O2 -march=armv8-a -lts
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv8-a -lts
完整的文件内容如下:
#
# qmake configuration for building with aarch64-linux-gnu-g++
#
MAKEFILE_GENERATOR = UNIX
CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib
QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS_RELEASE += -O2 -march=armv8-a -lts
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv8-a -lts
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)
# modifications to g++.conf
QMAKE_CC = aarch64-linux-gnu-gcc
QMAKE_CXX = aarch64-linux-gnu-g++
QMAKE_LINK = aarch64-linux-gnu-g++
QMAKE_LINK_SHLIB = aarch64-linux-gnu-g++
# modifications to linux.conf
QMAKE_AR = aarch64-linux-gnu-ar cqs
QMAKE_OBJCOPY = aarch64-linux-gnu-objcopy
QMAKE_NM = aarch64-linux-gnu-nm -P
QMAKE_STRIP = aarch64-linux-gnu-strip
load(qt_config)
保存退出。
然后将自己修改后的/qt-everywhere-src-5.12.9
这个文件夹复制到/opt路径下
sudo cp -r /qt-everywhere-src-5.12.9 /opt
接着在/opt//qt-everywhere-src-5.12.9 目录下运行刚刚编辑的脚本文件
sudo ./autoConfigure.sh
一段时间后,如果出现以下情况,输入y
然后出现下面这个情况
接着输入 make -j8
进行编译,大概需要一个半小时
sudo make -j8
确保编译不出现error
,出现的话需要手动debug
,确保编译不出错后输入命令
sudo make install
大概需要一个小时,也要确保安装过程不出现error
,出现的话需要手动debug
.
紧接着可以看见在/opt
目录下出现了我们指定的安装目录/qt-5.12.9-arm
至此,我们的QT5.12.9
源程序编译成功,可以用于QT后续的代码编译。
3. 安装QT Creator
sudo apt-get install qt5-default qtcreator -y
安装完成后重启
4. 设置QT交叉编译环境
进入qtcreator开发环境
在菜单中选择Tools——Options,在弹出的对话框中,选择Build & Run,选择标签Compilers,按下图设置,选择C++和C交叉编译器,如下图所示:
注意选择编译器路径!
切换到Qt Versions标签,点击“Add”按钮,选择qmake,如图所示
选择完成,按“OK”按钮,设置如图所示:
切换到Kits标签,点击“Add”按钮,然后设置如下图所示: