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

news2024/11/13 8:59:19

开发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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2039845.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

汇昌联信做拼多多店铺如何运营?

汇昌联信如何在拼多多上运营店铺,是许多电商新手和希望扩展市场的商家所关注的问题。在这个快速发展的电商平台上,掌握正确的运营策略,对于提升店铺销量、增强品牌影响力至关重要。接下来,我们将详细探讨如何有效运营拼多多店铺。…

Angular由一个bug说起之九:AWS S3 文件下载问题

引言 在现代 Web 开发中,我们经常需要处理来自全球不同地区的数据,这包括文件名中可能包含的非拉丁文字符。最近,在一个项目中,我们遇到了一个与 Amazon S3 服务相关的挑战,涉及到文件名编码的处理。当从 S3 下载文件…

Redis分布式部署方式-主从复制

分布式部署Redis方式 分布式系统,涉及到一个非常关键的问题:单点问题 单点问题:如果某个服务器,只有一个节点(只搞一个物理服务器,来部署这个服务器程序),会遇到一些困难&#xff…

多线程学习之ThreadLocal详细笔记

ThreadLocal详细笔记 一、ThreadLocal的基本概念二、ThreadLocal的独特性2.1 数据访问方式2.2 线程安全实现2.3 适用场景 三、ThreadLocal 的简单使用四、ThreadLocal 的工作原理五、ThreadLocal和内存泄漏的关系5.1 ThreadLocalMap的Entry的Key设计成弱引用5.2 弱引用会导致内…

超简单4行代码-STM32F103的HAL实现有源蜂鸣器报警

1、概述 在嵌入式项目开发中,使用蜂鸣器作为简单的报警或提示装置非常常见。根据不同的应用场景,我们可能会选择有源蜂鸣器或无源蜂鸣器。本文将重点介绍如何通过STM32F103系列单片机,利用HAL库,仅通过4行代码实现对有源蜂鸣器的…

django学习入门系列之第九点《初识MySQL》

文章目录 9.1 初识网站9.2 初识MySQL下载安装创建配置文件初始化启动MySQL服务进入mysql查看已有文件夹退出(关闭连接)忘记密码 往期回顾 9.1 初识网站 Python相关:基础、函数、数据类型、面向、模块。前端开发直观:HTML、CSS、JavaScript、jQuery:[静态…

【运维】JetBrains Gateway (Pycharm) SSH免密连接,改为免密连接

一直要求输入密码,很烦人: 如何免密连接? 1 重新打开gateway,来到这个界面点新建连接: 2 点这里设置: 3 在这一页,你可以改你的所有配置,只要设置为password并且保存密码&…

详解Redis 高可用的方式 Redis Cluster

Redis 高可用方式 Redis 提供了多种高可用性方案,主要包括以下几种方式: 主从复制(Replication) 主从复制是最基本的高可用性方案,通过将数据从一个主节点复制到多个从节点来实现数据的冗余和读写分离。主节点负责所…

数据结构--数据结构概述

一、数据结构三要素 1. 数据的逻辑结构 数据的逻辑结构是指数据元素之间的关系和组织方式,通常分为线性结构和非线性结构。 线性结构:例如线性表,其中数据元素按照顺序排列,彼此之间存在一对一的关系。 非线性结构:…

android车载手机互联投屏新专题-实战作业布置

背景: 学习了马哥的投屏实战开发课程后,大家都可以实现如下图一样的手机车机多端互联的投屏场景。 即已经实现了手机和车机投屏互动,车机上手机画面屏幕可以与手机实体屏幕一样就是常见的Mirror模式,如果不一样就是课程里面讲的扩…

解析网络流量管理方案:简化基于云的DNS负载均衡

数字化时代,网络规模和流量需求的增长,催生了用户对可用性的需求、管理员对更好的访问和管理等需求。在大型的网络应用中,为保障站点的稳定性,会为服务或站点提供多台服务器,以平均分配每台服务器上的压力,…

上门做饭小程序项目源码功能介绍

上门做饭小程序通常包含以下功能,以便用户方便地享受到上门做饭的服务: 用户注册与登录:允许用户创建账户并登录,管理个人信息和偏好。 菜品浏览与选择:提供各种菜品的列表或菜单,用户可以浏览菜品详情、价…

C++STL详解(五)——list类的具体实现

一.本次所需实现的三个类及其成员函数接口 链表首先要有结点,因此我们需要实现一个结点类。 链表要有管理结点的结构,因此我们要有list类来管理结点。 链表中还要有迭代器,而迭代器的底层其实是指针。但是我们现有的结点类无法完成迭代器的…

在VB.net中,对数据排名次,用LINQ、SortedSet,还是用SortedList速度快

标题 在VB.net中,对数据排名次,用LINQ、SortedSet,还是用SortedList速度快 正文 在VB.NET中,选择最适合你需求的排序和索引方法时,需要考虑到数据的规模、是否需要频繁地更新数据结构、以及是否只需要排序结果或还需要…

【Hadoop】建立圈内组件的宏观认识

01存储02计算03调度04其他05回忆 众多组件们构建了大规模分布式计算和存储平台。本文介绍Hadoop生态圈中各个组件的主要功能和作用,辅助学者理解每个组件的定位和用途,从而建立对圈内组件的宏观认识。梳理清楚HDFS、MapReduce、YARN、Hive、HBase、Spark…

【大模型系列篇】Transformers综述--邱锡鹏

论文标题:A Survey of Transformers 论文作者:Tianyang Lin, Yuxin Wang, Xiangyang Liu, Xipeng Qiu 论文链接:https://arxiv.org/abs/2106.04554 Transformer 在许多人工智能领域(如自然语言处理、计算机视觉和音频处理&#…

【区块链+金融服务】山西省信易贷平台 | FISCO BCOS应用案例

2022 年 8 月 8 日,山西省发展改革委按照国家的顶层设计,指导山西股权交易中心建设山西省信易贷平台,包 括三个子平台:一是建设集金融产品超市、融资需求精准匹配、融资监测等于一体的山西省融资综合信用服务平台; 二是…

微信小程序--25(WXSS模板样式了解)

一、WXSS和CSS关系 大部分特性相同 1.wxss独有 rpx尺寸单位import 样式导入 二、rpx 1.原理 rpx将所有屏幕宽度等分为750份,自动换成像素实现屏幕适配 2.rpx与px之间换算 约分计算不同设备比例不同 三、样式导入 1.语法 importt”相对路径“;…

Qt 0814作业

一、思维导图 二、登录窗口界面 自由发挥登录窗口的应用场景,实现一个登录窗口界面 要求:每行代码都有注释 【需要用到的图片或者动图,自己去网上找】 #include "mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(par…

Grok-2的Beta版发布

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…