当前位置: 首页 > news >正文

Qt程序移植至Arm开发板

目录

1.工具准备:

系统调试工具SecureCRT

 虚拟机安装linux(Ubuntu)

交叉编译工具链

 ARM 端Qt 环境(Qt-5.7.1)

1) linux processor SD安装 

2)交叉编译工具链配置

2.编译Qt工程: 

2.0 交叉编译 依赖库源码,生成动态链接库

2.1 在Qt工程源码目录下,source命令加载Linux Processor SDK 环境变量 

2.2 qmake 命令生成Makefile 文件

2.3 make 命令编译Qt 工程,生成可在ARM板子上正常运行的ARM 端Qt 程序镜像 

3. 文件传输

3.1 OpenSSH传输

3.2 将链接库文件移动到标准库目录下


1.工具准备:

  • 系统调试工具SecureCRT

        SecureCRT 是一款支持 SSH 协议的终端仿真软件,可通过串口网口对评估板系统信息进行查看、对评估板系统进行调试等。

SecureCRT的安装破解 [详细过程2024]-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/2301_76659937/article/details/137869326

  •  虚拟机安装linux(Ubuntu)

  • 交叉编译工具链

        PS: 需要配置交叉编译工具的环境变量(or找不到的)

Ubuntu安装arm-linux-gcc交叉编译器_gcc-linaro-5.3-2016.05-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/VVBBBBB/article/details/112528998

  •  ARM 端Qt 环境(Qt-5.7.1)

      Qt Arm环境与交叉编译工具一般由所用的arm平台提供,我直接用的TI提供的SDK软件开发包,下载地址:

PROCESSOR-SDK-LINUX-RT-AM57X 04_03_00_05 - TI.com

1) linux processor SD安装 

step1. 在Ubuntu 用户根目录下新建AM57x 工作目录。

mkdir /home/ting/AM57x

 step2. 在AM57x目录下,解压SDK安装包

./ti-processor-sdk-linux-rt-am57xx-evm-04.03.00.05-Linux-x86-Install.bin

step3. 进入安装界面,next->finish

PS:在这一步,我一直tar解压失败,排除各种原因后,发现原来是下载构成压缩包受损吧,重新下载安装后,就解决了。(若是通过ftp传输的,要选择bin方式传输)

2)交叉编译工具链配置

 step1.打开“/etc/profile”环境变量配置文件

sudo vim /etc/profile

 step2. 在文件最后添加如下内容,将Linux Processor SDK 开发包中的交叉编译工具链路径加
入系统环境变量中。

export PATH=$PATH:/home/ting/ti-processor-sdk-linux-rt-am57xx-evm-04.03.00.05/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/

step3.source命令使能交叉编译工具链

source /etc/profile

 step4. 重启

sudo reboot

重启虚拟机,并重新进入系统。输入“arm”,然后连续双击Tab 键,即可从弹出的编译器列表中看到arm-linux-gnueabihf-gcc-6.2.1,代表交叉编译工具链版本为:gcc-6.2.1。
 

2.编译Qt工程: 

2.0 交叉编译 依赖库源码,生成动态链接库

        我的工程里用到了Opencv库,所以需要准备ARM环境的opencv依赖库。 (当然也需要在qt的.pro配置文件中更改opencv动态库与头文件路径。)

opencv arm 交叉编译-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_43855258/article/details/140808038?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22140808038%22%2C%22source%22%3A%22qq_43855258%22%7D

2.1 在Qt工程源码目录下,source命令加载Linux Processor SDK 环境变量 

source /home/xxx/ti-processor-sdk-linux-rt-am57xx-evm-04.03.00.05/linux-dev
kit/environment-setup

2.2 qmake 命令生成Makefile 文件

qmake

2.3 make 命令编译Qt 工程,生成可在ARM板子上正常运行的ARM 端Qt 程序镜像 

make

编译成功后,目录下生成工程的可执行文件。 

3. 文件传输

        将工程的可执行文件与工程的依赖库.so文件传输至ARM开发板上。 

PC 机和评估板之间传送文件的常见方式如下:

1) 通过 Linux 系统启动卡、U 盘等存储介质方式拷贝。

(2) 通过 NFSTFTPOpenSSH 等网络方式拷贝。

3.1 OpenSSH传输

        OpenSSH 是SSH(Secure SHell)协议的免费开源实现。SSH 协议族可用来进行远程控制,或在计算机之间传送文件,评估板文件系统默认已支持SSH 库。 

step1. 在Ubuntu 中执行如下命令,查询是否已安装OpenSSH。

ssh -v

step2. 将评估板网口通过网线连接至路由器。在评估板上执行如下命令可自动获取到IP,如下图所示。"-i"用于指定网卡,eth0 为网卡名字,请根据实际情况修改。

udhcpc -i eth1

step3. 查询IP地址

ifconfig

 step4. ping 命令查看pc机与arm板子是否联通

step5. 使用OpenSSH 从PC 机传送文件至评估板(改成你对应的IP地址,与希望传输的路径)

scp test1 root@192.168.1.229:/// 文件家传输
scp -r test1 root@192.168.1.229:/

  使用OpenSSH 登录至评估板文件系统

sudo ssh root@192.168.1.229

3.2 将链接库文件移动到标准库目录下

 直接arm环境下运行工程可执行文件,出现以下报错:执行过程找不到动态链接库

 通过执行 ldd main 指令,可以查看当前文件在执行时需要用到的所有动态链接库,以及各个库文件的存储位置: 

ldd 【工程可执行文件名】

 运行由动态链接库生成的可执行文件时,必须确保程序在运行时可以找到这个动态链接库。可将链接库文件移动到标准库目录下(例如 /usr/lib/usr/lib64/lib/lib64);

相关文章:

Qt程序移植至Arm开发板

目录 1.工具准备: 系统调试工具SecureCRT 虚拟机安装linux(Ubuntu) 交叉编译工具链 ARM 端Qt 环境(Qt-5.7.1) 1) linux processor SD安装 2)交叉编译工具链配置 2.编译Qt工程: 2.0 交叉编译 依赖库源码,生成动…...

删除分区 全局索引 drop partition global index Statistics变化

1.不一定unusable,可以先删除data (index 再删除过程中会更新结构)再drop/truncate. ---------------------- CREATE TABLE interval_sale ( prod_id NUMBER(6) , cust_id NUMBER , time_id DATE ) PARTITION BY RANGE (time_i…...

git回退未commit、回退已commit、回退已push、合并某一次commit到另一个分支

文章目录 1、git回退未commit2、git回退已commit3、git回退已push的代码3.1 直接丢弃某一次的push3.2 撤销push后,不丢弃改动,重新修改后要再次push 4、合并某一次commit到另一个分支 整理几个工作上遇到的git问题。 1、git回退未commit git回退未comm…...

yolov8pose 部署rknn(rk3588)、部署地平线Horizon、部署TensorRT,部署工程难度小、模型推理速度快,DFL放后处理中

特别说明:参考官方开源的yolov8代码、瑞芯微官方文档、地平线的官方文档,如有侵权告知删,谢谢。 模型和完整仿真测试代码,放在github上参考链接 模型和代码。 之前写了yolov8、yolov8seg、yolov8obb 的 DFL 放在模型中和放在后处理…...

程序员找工作之操作系统面试题总结分析

程序员在找工作面试时,操作系统方面可能会被问到的问题涵盖了多个核心知识点和概念。以下是对这些面试问题的总结和分析: 1. 核心硬件与体系结构 微机的核心部件:询问微机硬件系统中最核心的部件是什么(CPU)。处理机…...

TypeScript 迭代器和生成器详解

目录 迭代器(Iterators) 生成器(Generators) 使用场景 for..of vs. for..in 语句 for..of 循环 for..in 循环 区别总结 注意事项 总结 在 TypeScript 中,迭代器(Iterators)和生成器&am…...

echarts 极坐标柱状图 如何定义柱子颜色

目录 echarts 极坐标柱状图 如何定义柱子颜色问题描述方式一 在 series 数组中定义颜色方式二 通过 colorBy 和 color 属性配合使用 echarts 极坐标柱状图 如何定义柱子颜色 本文将分享在使用 echarts 的 极坐标柱状图 时,如何自定义柱子的颜色。问题本身并不难解决…...

JavaScript模块化

JavaScript模块化 一、CommonJS规范1、在node环境下的模块化导入、导出 2、浏览器环境下使用模块化browserify编译js 二、ES6模块化规范1、在浏览器端的定义和使用2、在node环境下简单使用方式一:方式二: 3、导出数据4、导入数据5、数据引用问题 一、Com…...

文件包含漏洞Tomato靶机渗透_详解

一、导入靶机 将下载好的靶机拖入到VMware中,填写靶机机名称(随便起一个)和路径 虚拟机设置里修改网络状态为NAT模式 二、信息收集 1、主机发现 用御剑扫描工具扫描虚拟机的NAT网段,发现靶机的IP是192.168.204.141 2、端口扫描 用御剑端口扫描扫描全…...

湖北汽车工业学院-高等数学考纲

湖北汽车工业学院2024年普通专升本考试的《高等数学》考试大纲已经公布。考试形式为闭卷笔试,满分100分,考试时间为90分钟。考试内容主要包括以下几个部分: 1. **函数、极限、连续**: 涉及函数概念、表示法、有界性、周期性、奇偶…...

Linux:Xshell相关配置及前期准备

一、Linux的环境安装 1、裸机安装或者是双系统 2、虚拟机的安装 3、云服务器(推荐)——>安装简单,维护成本低,学习效果好,仿真性高(可多人一起用一个云服务器) 1.1 购买云服务器 使用云服…...

模型 正态分布(通俗解读)

系列文章 分享 模型,了解更多👉 模型_思维模型目录。随机世界的规律,大自然里的钟形曲线。 1 正态分布的应用 1.1 质量管理之六西格玛 六西格玛是一种旨在通过识别和消除缺陷原因来提高制造过程或业务流程质量的管理策略。我们先来了解下六…...

安装了Vue-pdf后,打包文件多出了worker.js和worker.js.gz

解决方式: 修改node_modules/worker-loader/dist/index文件 将 const filename _loaderUtils2.default.interpolateName(this, options.name || 中的 js/[hash].worker.js,更改为 static/js/[hash].worker.js...

使用excel生成国际化多语言js文件的脚本

1、创建一个空文件夹 2、终端 cnpm install xlsx3、在文件夹创建一个index.js // 导入 Node.js 内置的 fs 模块 const fs = require(fs); // 导入 xlsx 模块,用于处理 Excel 文件 const XLSX = require(xlsx);// 读取 Excel 文件 function readExcelFile(filePath) {const …...

【蝉联】摩斯再次获得“中国隐私计算市场份额第一”

蝉联第一 8月2日,全球领先的IT市场研究和咨询公司IDC发布了《中国隐私计算平台厂商市场份额,2023》报告。蚂蚁集团凭借商用隐私计算平台摩斯(MORSE),以 35.3%的市场份额蝉联第一。 2023年,中国隐私计算平台…...

安装 qcloud-python-sts 失败 提示 gbk codecs decode byte 应该如何解决

安装 qcloud-python-sts 失败 提示 gbk codecs decode byte 应该如何解决 解决方案: 将windows 修改为utf-8编码格式 解决步骤如下: 1. 进入控制台 2. 点击区域 4. 点击管理 4.勾选UTF-8 5.重启系统即可...

mv:自动对焦代码

try:# The camera will now focus on whatever is in front of it.sensor.ioctl(sensor.IOCTL_TRIGGER_AUTO_FOCUS) except:raise (Exception("Auto focus is not supported by your sensor/board combination."))...

【C++】数组案例 五只小猪称体重

题目:给出物质小猪体重,找出最大的体重的值并打印 思路:利用菽粟写入五只小猪的体重,让每一个元素都赋值给一个整型变量并每赋值一次就于下一个数组中的元素比,若是大就继续赋值给这个变量,若是小则不赋值…...

Bug 解决 | 后端项目无法正常启动,或依赖服务连接失败

目录 1、版本问题 2、依赖项问题 明明拷贝的代码,为什么别人行,我启动就报错? 这篇文章我就理一下最最常见的项目启动报错的两种原因! 1、版本问题 比如明明项目的 Java 版本是 8,你非得拿 5 跑?那不是…...

Linux: network: mlx5_core crash;dos

https://bugzilla.redhat.com/show_bug.cgi?idCVE-2024-41090 https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id8be915fc5ff9a5e296f6538be12ea75a1a93bdea https://www.openwall.com/lists/oss-security/2024/07/24/4 是tap的驱动向下传递的包…...

用手机剪辑视频素材从哪里找?用手机视频素材库分享

视频编辑是一门充满创意的艺术,无论是制作短片、广告还是个人Vlog,都离不开高质量的视频素材。如果自己拍摄的素材不能完全满足创作需求,或者需要更多样化的内容来丰富视频,那么优质的视频素材来源至关重要。下面推荐几个提供高品…...

DataStream API使用Sink及自定义Sink

目录 Data Sinks 案例 自定义Sink Human实体类 自定义RichSinkFunction MySQL Sink使用 测试 Data Sinks 数据接收器(Data sinks)消费数据流并将它们转发到文件、套接字、外部系统或打印它们。Flink带有各种内置输出格式,这些格式被封装在数据流的算子后面: …...

C++标准模板(STL)- 类型支持 (类型属性,检查类型是否拥有强结构相等性,std::has_strong_structural_equality)

类型特性 类型特性定义一个编译时基于模板的结构&#xff0c;以查询或修改类型的属性。 试图特化定义于 <type_traits> 头文件的模板导致未定义行为&#xff0c;除了 std::common_type 可依照其所描述特化。 定义于<type_traits>头文件的模板可以用不完整类型实例…...

《中国数据库前世今生》观影——2000年代/数据库分型及国产数据库开端

引出 《中国数据库前世今生》观影——2000年代/数据库分型及国产数据库开端 第3集&#xff1a;2000年代/数据库分型及国产数据库开端 y2k问题 千年虫&#xff0c;又叫做“计算机2000年问题”“电脑千禧年千年虫问题”或“千年危机”。缩写为“Y2K]”。是指在某些使用了计算机…...

图的同态Graph Homomorphism与同构Graph Isomorphism

图的同态Graph Homomorphism 图的同态&#xff08;Graph Homomorphism&#xff09;是图论中的一个重要概念&#xff0c;用于描述图之间的一种映射关系。图的同态描述了一个图如何通过映射保留其边的结构。 ### 图的同态定义 设有两个图 \( G (V_G, E_G) \) 和 \( H (V_H, …...

使用 Python 对雷达卫星 sar 图像进行降噪的三种方法

合成孔径雷达 (SAR) 图像广泛应用于各种领域(航空航天、军事、气象等)。问题是这种图像在其原始格式中受到噪点的影响。虽然这些图像通常也是沉重的文件,但从科学的角度来看,有效地对其进行去噪的任务似乎既具有挑战性,又在现实世界中非常有用。 卫星图像有两大类: 光学…...

C# Unity 面向对象补全计划 之 初识继承方法与多态

本文仅作学习笔记与交流&#xff0c;不作任何商业用途&#xff0c;作者能力有限&#xff0c;如有不足还请斧正 本系列旨在通过补全学习之后&#xff0c;给出任意类图都能实现并做到逻辑上严丝合缝 1.继承方法 C# & Unity 面向对象补全计划 之 继承&#xff08;字段与属性&…...

突破PyCharm索引瓶颈:提升文件索引速度的策略

突破PyCharm索引瓶颈&#xff1a;提升文件索引速度的策略 PyCharm作为Python开发者的首选IDE&#xff0c;以其强大的功能和灵活的配置而广受好评。然而&#xff0c;当处理大型项目或复杂文件结构时&#xff0c;文件索引慢的问题可能会显著降低开发效率。本文将提供一系列优化技…...

体素相关的快速计算

“体素”通常是指在三维空间中具有固定尺寸和位置的小立方体单元。 体素的优点包括&#xff1a; 易于处理和计算&#xff1a;在计算机图形学和三维建模中&#xff0c;体素的结构相对简单&#xff0c;计算和操作较为方便。能精确表示物体的内部结构&#xff1a;对于一些需要了…...

Python 爬虫项目实战(二):爬取微博热搜榜

前言 网络爬虫&#xff08;Web Crawler&#xff09;&#xff0c;也称为网页蜘蛛&#xff08;Web Spider&#xff09;或网页机器人&#xff08;Web Bot&#xff09;&#xff0c;是一种按照既定规则自动浏览网络并提取信息的程序。爬虫的主要用途包括数据采集、网络索引、内容抓…...

江门网站制作方案定制/百度入口网站

MAC下解决eclipse卡顿或者运行慢的问题参考文章&#xff1a; &#xff08;1&#xff09;MAC下解决eclipse卡顿或者运行慢的问题 &#xff08;2&#xff09;https://www.cnblogs.com/fan-yuan/p/6123342.html 备忘一下。...

如何在wordpress安装编辑器/发帖推广平台

2.176.1 (2019-06-10)自 2.176 以来的变更&#xff1a;恢复安装向导中用到的中文本地化资源。(issue 57412)Robustness: 当 ComputerListener#onOnline() 发生运行时异常后不把节点设置为离线状态。(issue 57111)CLI 中通过参数 (-remoting option) 对远程模式的支持已经被移除…...

网站开发个人总结/百度收录网站提交入口

很多同学都听说过&#xff0c;现代操作系统比如Mac OS X&#xff0c;UNIX&#xff0c;Linux&#xff0c;Windows等&#xff0c;都是支持“多任务”的操作系统。 什么叫“多任务”呢&#xff1f;简单地说&#xff0c;就是操作系统可以同时运行多个任务。打个比方&#xff0c;你…...

wordpress前端会员中心/漳州seo建站

今天老师给总结了一遍常用的两个集合List与Dictionary并带着写了一些小工具程序&#xff0c;这两个例子感觉非常实用&#xff01;笔记如下&#xff1a; 1 常用集合&#xff1a; 2 1.可变长数组&#xff1a;ArrayList&#xff08;非泛型&#xff09;->List<T>&#xf…...

做网站和做网页/如何建立网上销售平台

要快速学会Python&#xff0c;谨记3456这四个数字就可以了。鉴于大多数书籍在编写上都结构混乱&#xff0c;无法体现出知识的系统性、逻辑性和层次性。特整理出学Python最基础的知识学习框架&#xff0c;希望帮助大家快速入门。下面我来描述这四个数字的含义&#xff01;我是按…...

阜宁做网站价格/生成关键词的软件

学习资源推荐 微信扫码关注公众号 &#xff1a;前端前端大前端&#xff0c;追求更精致的阅读体验 &#xff0c;一起来学习啊关注后发送关键资料,免费获取一整套前端系统学习资料和老男孩python系列课程 学习资源推荐 code (function(a,b,c){console.log(a,b,c) })(1,2,3)...