给虚拟机linux系统安装交叉编译工具链

news/2024/11/14 11:56:47/

我们在电脑上写的代码编译生成的是X86架构的二进制文件,只能在X86平台上运行,而开发板是ARM架构因此需要安装交叉编译链工具,这样在电脑上写的代码交叉编译之后生成的是ARM架构的二进制文件。

绿色的字眼是与本文无关的只是这样有助于我们的使用

1.下载arm-linux-gnu5.4.0.rar

通过网盘分享的文件:arm-linux-gnu5.4.0
链接: https://pan.baidu.com/s/1TxfQuqGBmOKKxgqAZgl6gg?pwd=k72v 提取码: k72v
解压备用

下载完成后先解压,再改压缩包的格式加上.xz,改成arm-linux-gnueabi-5.4.0.tar.xz名字


2. 把arm-linux-gnueabi-5.4.0.tar.xz 复制到虚拟机/WSL的共享路径下

3. 把 .xz 文件进行解压 (-J)

在arm-linux-gnueabi-5.4.0.tar.xz目录下使用下面的命令

$sudo tar -Jxvf arm-linux-gnueabi-5.4.0.tar.xz -C /

 4. 添加环境变量

vim ~/.bashrc在文件末尾添加
export PATH=/usr/local/arm/5.4.0/usr/bin:$PATH

5. 刷新一下配置文件

$source ~/.bashrc

 6. 检查是否安装成功

arm-linux-gcc -v // 查看版本信息

成功会出现下面这个信息

7. 使用交叉编译器进行编译程序

gcc Hello.c -o Hello // 编译的程序只能在X86(电脑)运行
arm-linux-gcc Hell.c -o Hello // 编译的程序只能在ARM(开发板)运行

如何使用Makefile 

修改Makefile 把CC换成 arm-linux-gcc

 换了之后使用make出现下面的错误

1 rm-linux-gcc src/Output.c -o src/Output.o -I./inc -c
2 /usr/local/arm/5.4.0/usr/bin/../libexec/gcc/arm-none-linux-gnueabi/5.4.0/cc1:
3 error while loading shared libraries: libmpfr.so.4:
4 cannot open shared object file: No such file or directory

 原因是系统中使用的 so.6 的库,但是我们的编译用的是so.4

如何知道我们用的是哪个库?

cd /usr/lib
find -name "libmpfr*"

解决方法就是我们生成一个链接名字为 libmpfr.so.4指向libmpfr.so.6这样系统就能找到了

$sudo ln -s /usr/lib/x86_64-linux-gnu/libmpfr.so.6 /usr/lib/x86_64-linux-gnu/libmpfr.so.4

 


http://www.ppmy.cn/news/1527529.html

相关文章

python 实现entropy熵算法

entropy熵算法介绍 Entropy(熵)算法并不是一个单一的、具体的算法,而是一个广泛的概念,用于描述系统无序程度或信息不确定性的量度。在计算机科学、信息论、热力学等多个领域中,熵都有重要的应用。 在计算机科学中&a…

【Vue】- 生命周期和数据请求案例分析

文章目录 知识回顾前言源码分析1. 生命周期2. 请求数据案例分析 拓展知识 总结 知识回顾 前言 Vue生命周期 ● 就是一个Vue实例从创建 到 销毁 的整个过程。 生命周期四个阶段:① 创建 ② 挂载 ③ 更新 ④ 销毁 ● 创建阶段:创建响应式数据 ● 挂载阶段…

【七篇文章从零速通transformer】01 从零开始解密神经网络:深度学习基础全解析

文章简介 本系列文章旨在帮助零基础的读者系统地掌握深度学习,最终能够理解 Transformer 架构。本篇文章是第一篇,我们将从深度学习最核心的知识——神经网络——开始讲解,深入浅出地带你了解神经网络的结构、如何让神经网络工作,激活函数、损失函数、优化器和反向传播等关…

Router安装以及导入

安装 本文适合Vue3的项目使用 安装vue-router4 npm install vue-router4在src目录下创建router的文件夹,并新建一个index.js在index.js中导入vue-router,并定义其实例 import { createRouter, createWebHistory } from vue-router//在其中定义路由 c…

[网络]TCP/IP协议 之 TCP协议的核心机制(2)

文章目录 TCP核心机制1. 确认应答2. 超时重传3. 连接管理三次握手四次挥手 4. 滑动窗口5. 流量控制6. 拥塞控制7. 延时应答8. 捎带应答9. 粘包问题10. 异常情况 TCP核心机制 1. 确认应答 (上篇) 2. 超时重传 (上篇) 3. 连接管理 建立连接的流程: 三次握手 断开连接的流程…

3本SCI/SSCI期刊更名,9月WOS更新!速看!

SCI/SSCI期刊目录9月份已更新!快来查收最新动态!如有相关领域作者有意投稿,可作为重点关注! ​ 期刊动态 2024年9月科睿唯安期刊目录更新 2024年9月18日,科睿唯安更新了WOS期刊目录,此次更新&#xff0c…

OceanBase 运维管理工具 OCP 4.x 升级:聚焦高可用、易用性及可观测性

可视化的管控平台,对 OceanBase 这类的分布式数据库及大规模数据的运维管理来说,是提升运维效率与数据库管理水平的重要工具。OceanBase 运维管理工具 OCP 作为专为OceanBase数据库设计的企业级全生命周期管理平台,为用户提供了全面的数据库可…

RocketMQ出现The broker does not support consumer to filter message by SQL92

在使用RocketMQ使用SQL过滤消息的时候,出现下面错误 原因是我们的配置文件没有开启SQL过滤功能,我们需要在每个配置文件中添加下面命令 #开启过滤消息时支持SQL92标准 enablePropertyFiltertrue接着我们重启namesrv与broker服务就解决问题 # 1.进入bi…