JetsonNano QT5.12.9交叉编译和环境搭建

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//
JetsonNano QT5.12.9交叉编译和环境搭建_第1张图片
下载完成后,解压

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目录下,根据自己交叉编译工具进行相应的替换:
JetsonNano QT5.12.9交叉编译和环境搭建_第2张图片
接着输入命令

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
JetsonNano QT5.12.9交叉编译和环境搭建_第3张图片
然后出现下面这个情况
JetsonNano QT5.12.9交叉编译和环境搭建_第4张图片
接着输入 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交叉编译器,如下图所示:
JetsonNano QT5.12.9交叉编译和环境搭建_第5张图片

JetsonNano QT5.12.9交叉编译和环境搭建_第6张图片
注意选择编译器路径!
切换到Qt Versions标签,点击“Add”按钮,选择qmake,如图所示

JetsonNano QT5.12.9交叉编译和环境搭建_第7张图片

选择完成,按“OK”按钮,设置如图所示:
切换到Kits标签,点击“Add”按钮,然后设置如下图所示:
JetsonNano QT5.12.9交叉编译和环境搭建_第8张图片
JetsonNano QT5.12.9交叉编译和环境搭建_第9张图片

5. 参考

  • [1] ubuntu16.04 编译ARM平台qt5.12.3

  • [2] QT5.12.1 ARM开发环境搭建 并 移植到RK3399 ubuntu16.04系统运行【完整版】

  • [3] Nvidia Jetson Nano 安装Qt5

  • [4] 移植QT5.7到嵌入式ARM

你可能感兴趣的:(JetsonNano)