虚拟机上使用Ubuntu1804上编译qt5.12.9部署到jetson nano上

开发qt界面,基于Qt5.12.9,开发环境使用虚拟机加载Ubuntu1804,开发完成后的qt程序最后部署到jetson nano上,使用的通用编译器是gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu

 

  • 安装编译器
    1. 本文中直接将gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu包copy到Ubuntu系统的/opt/目录下即可。
  • 编译jeston nano平台的Qt5.12.9源码
    1. 下载 Qt5.12.9 源码

我们可以在Qt下载地址https://download.qt.io/找到https://download.qt.io/archive/qt/5.12/5.12. 9/single/,进入下载页面如下。

ce0450d0bd154c0b83d1b0bbc5c2535f.png

在 Windows 上下载好上面 qt-everywhere-src-5.12.9.tar.xz 源码拷贝到 Ubuntu 虚拟机下,或 者直接右键上面的下载项,复制下载地址链接,在 Ubuntu 下直接使用 wget 指令下载。

解压下载好的 qt-everywhere-src-5.12.9.tar.xz 源码压缩包。

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

在当前目录出现 qt-everywhere-src-5.12.9 目录夹,此文件夹就是我们解压后的目录。进入 此目录。

cd qt-everywhere-src-5.12.9/

2.修改 qmake.conf

编辑 qtbase/mkspecs/linux-aarch64-gnu-g++/qmake.conf,配置相关编译器及路径。

vi qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf

 

修改成如下,红色加粗部分就是要修改的地方。

 

#

# qmake configuration for building with arm-linux-gnueabi-g++

#

 

MAKEFILE_GENERATOR      = UNIX

CONFIG                 += incremental

QMAKE_INCREMENTAL_STYLE = sublib

 

 

QT_QPA_DEFAULT_PLATFORM = linuxfb

QMAKE_CFLAGS += -O2 -march=armv8-a -lts

QMAKE_CXXFLAGS += -O2 -march=armv8-a -lts

 

include(../common/linux.conf)

include(../common/gcc-base-unix.conf)

include(../common/g++-unix.conf)

 

clangdefines += Q_ATOMIC_INT64_IS_SUPPORTED

 

# modifications to g++.conf

QMAKE_CC                = /opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc

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

QMAKE_LINK              = /opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++

QMAKE_LINK_SHLIB        = /opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++

 

# modifications to linux.conf

QMAKE_AR                = /opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-ar cqs

QMAKE_OBJCOPY           = /opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-objcopy

QMAKE_NM                = /opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-nm -P

QMAKE_STRIP             = /opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-strip

load(qt_config)

 

3.配置编译选项

        由于配置较长,按需要编译,我这里写了一个脚本。内容如下,可以根据实际情况调整红色部分(安装路径)即可;

vi autoconfigure.sh

 

./configure -prefix /home/ qt-everywhere-src-5.12.9/aarch64-qt \

-opensource \

-confirm-license \

-release \

-strip \

-shared \

-xplatform linux-aarch64-gnu-g++ \

-optimized-qmake \

-c++std c++11 \

--rpath=no \

-pch \

-skip qt3d \

-skip qtactiveqt \

-skip qtandroidextras \

-skip qtcanvas3d \

-skip qtconnectivity \

-skip qtdatavis3d \

-skip qtdoc \

-skip qtgamepad \

-skip qtlocation \

-skip qtmacextras \

-skip qtnetworkauth \

-skip qtpurchasing \

-skip qtremoteobjects \

-skip qtscript \

-skip qtsensors \

-skip qtserialport \

-skip qtspeech \

-skip qtsvg \

-skip qttools \

-skip qttranslations \

-skip qtwayland \

-skip qtwinextras \

-skip qtx11extras \

-make libs \

-make examples \

-nomake tools -nomake tests \

-gui \

-widgets \

-dbus-runtime \

--glib=no \

--iconv=no \

--pcre=qt \

--zlib=qt \

-no-openssl \

--freetype=qt \

--harfbuzz=qt \

-no-opengl \

-linuxfb \

--xcb=no \

--libpng=qt \

--libjpeg=qt \

--sqlite=qt \

-plugin-sql-sqlite \

-recheck-all

赋予脚本可执行权限。

chmod +x autoconfigure.sh

直接执行 autoconfigure.sh。

./autoconfigure.sh

4.开始编译 Qt5.12.9 源码

直接执行 make 开始编译。

time (make -j 16) // -j 16 代表最多允许 16 条编译指令同时运行,参数 16,一般为 个人分配给虚拟机的核心数的 2 倍,前面加个 time 是测试编译时间。

编译完成如下图。

a71250cad4dc4a7b9f43995002ef12c0.png

执行安装指令后,查看安装后的内容。

make install

 

ls  /home/ qt-everywhere-src-5.12.9/aarch64-qt

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值