Linux第19步_安装“Ubutun交叉编译工具链”

由于Ubuntu系统使用的GCC编译器,编译结果是X86文件,只能在X86上运行,不能在ARM上直接运行。因此,还要安装一个“Ubutun交叉编译工具链”,才可以在ARM上运行。

arm-none-linux-gnueabi-gcc是 Codesourcery 公司(目前已经被Mentor收购)基于GCC推出的的ARM交叉编译工具lsb-core lib32stdc++6是需要安装的相关库。

1、在安装前,要检查虚拟机可以上网,否则可能会导致安装失败。

2、在虚拟机界面,右击鼠标,弹出下面的对话框:

3、点击“打开终端(E)”,得到下面的界面:

4、输入“ls回车”,列出文件和文件夹

输入“cd linux回车”,进入linux目录;

输入“rm main*回车”,删除所有以main开头的文件。

输入“ls回车”,列出文件和文件夹

 5、输入“mkdir tool回车”,在linux目录下创建一个”tool“文件夹。

然后输入“ls回车”,列出文件和文件夹;

6、双击Window系统桌面上的“FileZilla Client.exe”,打开FTP客户端,这时候,我们知道安装“FTP客户端 的用处了吧。

7、点击“文件”,然后点击“站点管理器”,见下图操作:

打开E:\开发板资料\STM32MP157开发板A盘基础资料\05、开发工具\05、开发工具\01、交叉编译器,找到下面这个文件:

gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf.tar

8、点击下图中“MP1_Ubinti”,然后点击“链接”,见下图操作: 

得到下图:

 9、找到E盘,再找STM32MP157开发板A盘基础资料,见下图操作: 

10、将gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf.tar拖到tool目录下,见下图操作:

 11、等待文件传输结束

12、文件上传成功,见下图:

 13、在终端,输入“pwd回车”,pwd是词组print working directory的首字母缩写,即打印工作目录;

输入“cd tool回车”,进入tool目录;

输入“ls回车”,列出文件和文件夹;

14、在虚拟机界面右击鼠标,弹出下面的对话框,再打开一个终端。 

15、点击“打开终端(E)”,得到下面的界面:

16、输入“ls回车” ,列出文件和文件夹;

17、输入“sudo mkdir /usr/local/arm回车 ,在“/usr/local”路径下创建一个“arm”文件夹:

 18、输入密码“123456回车”

19、输入“cd /usr/local/arm回车” ,进入/usr/local”路径下的“arm”文件夹:

20、输入“sudo cp gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf.tar.xz  /usr/local/arm回车”,将当前文件拷贝到“/usr/local/arm”目录下

21、 输入密码“123456回车”

 22、在另外一个已经打开的终端里,输入“ls回车”,列出文件和文件夹;

23、输入“sudo tar -vxf gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf.tar.xz回车”,解压文件。

 24、 输入密码“123456回车”

25、解压完成后,输入“ls回车”,发现下面的目录

gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf

26、输入“cd gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf/回车”,进入目录gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf下;

输入“ls回车”,列出文件和文件夹;

27、输入“cd bin回车”,进入“bin”目录

输入“ls回车”,列出文件和文件夹;

28、arm-none-linux-gnueabi-gcc是 Codesourcery 公司基于GCC推出的的ARM交叉编译工具,见下图:

29、输入“pwd回车”,查找全路径如下:

/usr/local/arm/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf/bin

输入“sudo vi /etc/profile回车”,直接打开"etc"目录下的profile文件,准备修改它。

30、输入密码“123456回车”

31、在文件的最后面添加下面的语句

export PATH=$PATH:/usr/local/arm/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf/bin

注意:PATH后面不能有空格

32、按“ESC键”,然后输入“:wq回车”保存退出。

33、升级系统中的软件包

输入“cd /usr/local/arm/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf/bin回车”,进入“bin”目录

输入“ls回车,列出文件和文件夹;

输入“sudo apt-get update回车”,升级系统中的软件包。

输入密码“123456回车

更新完成见下图:

34、输入“sudo apt-get install lsb-core lib32stdc++6回车”,安装相关库“lsb-core lib32stdc++6”

发现问题如下:

E: 无法获得锁 /var/cache/apt/archives/lock - open (11: 资源暂时不可用)

E: 无法对目录 /var/cache/apt/archives/ 加锁

输入“ps -aux回车”,列出所有进程,找到lock

输入“sudo kill  850回车”,删除lockd进程

 输入“sudo apt-get install lsb-core lib32stdc++6回车”,安装“lsb-core lib32stdc++6”;

见下图:

 输入“cd /usr/local/arm/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf/bin回车

35、关机重启Ubuntu系统

36、在虚拟机界面右击鼠标,弹出下面的对话框:

37、点击“打开终端(E)”,得到下面的界面 

 38打开终端,输入“arm-none-linux-gnueabihf-gcc -v回车”,如果交叉编译器安装正确的话就会显示版本号

39、输入“cd /home/zgq/linux/回车”,进入/home/zgq路径下的linux目录;

输入“ls回车”,列出文件和文件夹;

可以看到: gcc版本:9.2-2019.12

40、输入“vi main.c回车”,创建一个main.c文件,并打开

41、按下“大写字母A”,插入光标。

#include <stdio.h>

int main(int argc,char *argv[])

{      

        printf("Hello world\r\n");

}

 42、按下“ESC建”,输入“:wq回车”,保存退出。

43、输入“ls回车”,列出文件和文件夹;

 44输入“arm-none-linux-gnueabihf-gcc  main.c  -o main回车”,编译,并生成可执行文件main.exe

输入“ls回车”,列出文件和文件夹;

见下图:

45输入“file main回车”,发现main是32位文件。

46、输入“./main回车”,发现不能执行main。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【力扣每日一题】力扣2478从链表中移除节点

题目来源 2478.从链表中移除节点 题目描述 给你一个链表的头节点 head 。 移除每个右侧有一个更大数值的节点。 返回修改后链表的头节点 head 。 示例 示例1&#xff1a; 输入&#xff1a;head [5,2,13,3,8] 输出&#xff1a;[13,8] 解释&#xff1a;需要移除的节点是 5 …

Java并发集合详解

第1章&#xff1a;引言 大家好&#xff0c;我是小黑&#xff0c;在这篇博客中&#xff0c;咱们将一起深入探索Java中的并发集合。多线程编程是一个不可或缺的部分&#xff0c;它能让程序运行得更快&#xff0c;处理更多的任务。但同时&#xff0c;多线程也带来了一些挑战&…

unity编辑器Scene界面输出位置及路径

工程Asset下新建Editor文件夹&#xff1b; Editor文件夹下新建脚本LogPosition using System.Collections; using System.Collections.Generic; using UnityEditor; using UnityEngine; public class LogPosition : EditorWindow {//最终输出的数据.static string logtext;//增…

大学生搜题软件,未来可期吗?

作为一家专注于软件开发的公司《智创有术》&#xff0c;我们致力于为客户提供创新、高效和可靠的解决方案。通过多年的经验和专业知识&#xff0c;我们已经在行业内建立了良好的声誉&#xff0c;并赢得了客户的信任和支持。 支持各种源码&#xff0c;网站搭建&#xff0c;APP&a…

32.virtual reality system concepts illustrated using OSVR

32.1 Common Space This section describes the spaces needed to support viewing and interacting with the virtual world. 本节介绍支持查看虚拟世界并与之交互所需的空间。 The spaces required for supporting viewing and interacting with a virtual world can vary …

记一次服务器被入侵的排查过程

起因 阿里云安全中心报告了告警信息&#xff0c;同时手机短信、邮件、电话也接收到了来自阿里云的风险通知&#xff0c;感觉这方面阿里云还是不错。 排查及解决过程 这条wget指令究竟是怎么被运行的 我无法定位到攻击人员是通过什么样的方式让我的java程序执行了wget这条指…

转后端一年半双非本科Java无实习进大厂,给双非朋友经验分享

背景介绍 B站有详细视频&#xff0c;同名搜索即可。 今天文章想分享的是我踩过的坑以及那些做的是值得大家参考。 有需要就加V&#xff1a; zhazhagao_ 进了快手(如果你觉得不是大厂那就不是!)&#xff1a; 真双非本科: 安徽某双非无实习: 因为编程语言问题,去过之后发现不喜欢…

Java中请求生成唯一追溯TraceId

Java中请求生成唯一追溯TraceId 一&#xff1a;背景 因为是微服务架构,平常日志太多,看日志不太好查,所以想要从一整个链路当中获取一个唯一标识,比较好定位问题&#xff0c; 原理就是从gateway网关将标识传递到下游,下游服务拿到这个标识,响应结束后将traceId反向写入响应体…

C# Onnx Chinese CLIP 通过一句话从图库中搜出来符合要求的图片

目录 效果 生成图片特征 查找踢足球的人 测试图片 模型信息 image_model.onnx text_model.onnx 项目 代码 Form1.cs Clip.cs 下载 C# Onnx Chinese CLIP 通过一句话从图库中搜出来符合要求的图片 效果 生成图片特征 查找踢足球的人 测试图片 模型信息 image_mod…

RFM会员价值度模型

模型基本原理 会员价值度用来评估用户的价值情况&#xff0c;是区分会员价值的重要模型和参考依据&#xff0c;也是衡量不同营销效果的关键指标。 价值度模型一般基于交易行为产生&#xff0c;衡量的是有实体转化价值的行为。常用的价值度模型是RFM RFM模型是根据会员 最近…

如何在 Windows 上从电脑硬盘恢复照片

如今&#xff0c;随着相机设备的普及&#xff0c;您可以轻松地一次拍摄一堆照片&#xff0c;将它们传输到硬盘上&#xff0c;然后再拍摄更多照片。但是&#xff0c;如果您的所有照片意外丢失在驱动器中怎么办&#xff1f;你能恢复它们吗&#xff1f; 在本指南中&#xff0c;我…

配置文件的创建和部署

配置描述文件&#xff08;Configuration Profiles&#xff09;的格式为xml&#xff0c;其提供了一个非常容易的方式去给电脑、移动设备或用户定义一些设置或限制&#xff0c;你可以使用Jamf Pro去创建这样的配置文件。 &#xff08;配置文件的负载&#xff09; 有关配置文件的配…

Spring——Spring AOP1(代理模式Proxy)

代理&#xff08;Proxy&#xff09;模式 1.创建工程 2.代理&#xff08;Proxy&#xff09;模式介绍 作用&#xff1a;通过代理可以控制访问某个对象的方法&#xff0c;在调用这个方法前做前置处理&#xff0c;调用这个方法后做后置处理。&#xff08;即&#xff1a; AOP的微观…

Postman 并发测试入门指南:如何模拟用户并发请求?

背景介绍 最近&#xff0c;我们发起了一个在线图书管理系统的项目。我负责的一个关键模块包括三个主要后台接口&#xff1a; 实现对books数据的检索。实施对likes数据的获取。通过collections端点访问数据。 应对高流量的挑战 在设计并部署接口时&#xff0c;我们不可避免地…

Anaconda安装教程及注意事项

一、Anaconda简介 Anaconda是一个大数据处理、科学计算领域的Python发行版。它包含了众多流行的开源软件和库&#xff0c;如NumPy、SciPy、Matplotlib、Pandas等&#xff0c;并同时提供了一个方便的打包、分发和管理这些工具的工具集合&#xff0c;如conda和pip等。Anaconda还提…

Service Weaver:Google开源基于分布式应用程序开发的框架,重新定义微服务边界

大家好&#xff0c;我是萧楚河&#xff0c;公众号&#xff1a;golang面试经典讲解&#xff0c;感谢关注&#xff0c;一起学习一起成长。一、前言 今年6月&#xff0c;一群谷歌员工&#xff08;由谷歌软件工程师Michael Whittaker领导&#xff09;发表了一篇名为“Towards Mode…

transforms图像增强(一)

一、数据增强 数据增强&#xff08;Data Augmentation&#xff09;是一种常用的数据预处理技术&#xff0c;通过对训练集进行各种变换和扩增操作&#xff0c;可以增加训练数据的多样性和丰富性&#xff0c;从而提高模型的泛化能力。 数据增强的目的是通过对训练集中的图像进行…

如何在Ubuntu安装SVN服务并结合cpolar实现公网TCP地址远程访问本地服务

文章目录 前言1. Ubuntu安装SVN服务2. 修改配置文件2.1 修改svnserve.conf文件2.2 修改passwd文件2.3 修改authz文件 3. 启动svn服务4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射本地端口 5. 测试公网访问6. 配置固定公网TCP端口地址6.1 保留一个固定的公网TCP端口地址6…

locust 快速入门--程序调试

背景 对测试的api引入locust后&#xff0c;不在使用requests库进行http请求了&#xff0c;而是通过client属性发送请求&#xff0c;实质是使用HttpSession。 问题&#xff1a;如果对locust程序进行调试 解决方案&#xff1a; 因为locust使用协程&#xff0c;需要开启pych…

剧本杀小程序/APP搭建,增加玩家游戏体验

近年来&#xff0c;剧本杀游戏成为了年轻人娱乐的新方式&#xff0c;受到了年轻人的追捧。 剧本杀是一种新型的社交游戏&#xff0c;在游戏中&#xff0c;玩家不仅可以进行角色扮演&#xff0c;也能够交到好友&#xff0c;符合当下年轻人的生活模式。 小程序、app是当下剧本杀…