交叉编译工具 aarch64-linux-gnu-gcc 的介绍与安装

AArch64 是随 ARMv8 ISA 一起引入的 64 位架构,用于执行 A64 指令的计算机。而且在 AArch64 状态下执行的代码只能使用 A64 指令集。,而不能执行 A32 或 T32 指令。但是,与 AArch32 中不同,在64位状态下,指令可以访问 64 位和 32 位寄存器。

aarch64-linux-gnu-gcc 是一个交叉编译工具链,可以在其他架构的系统中,编译安装 64 位 arm 架构的程序。常用在嵌入式代码的移植中。aarch64-linux-gnu-gcc 是由 Linaro 公司基于 GCC 推出的的 ARM 交叉编译工具。可用于交叉编译 ARMv8 64 位目标中的裸机程序、u-boot、Linux kernel、filesystem 和 App 应用程序。aarch64-linux-gnu-gcc 交叉编译器必须安装在 64 位主机上,才能编译目标代码。

软件仓库安装
1.查看有哪些版本可以安装

apt-cache search aarch64

2.选择某个版本进行安装

apt-get install gcc-10-aarch64-linux-gnu

可能会出现 E: Unmet dependencies. 错误


使用 apt --fix-broken install 可解决依赖问题

root@kali:~/Documents/test# apt --fix-broken install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following packages were automatically installed and are no longer required:dh-python libdouble-conversion1 liblinear3
......

3.安装一个没有版本号的 gcc-aarch64-linux-gnu

sudo apt-get install gcc-aarch64-linux-gnu


这样就可以使用 gcc-aarch64-linux-gnu 了。如果你在安装的过程中,出现了问题,也可以直接从官方网站下载编译好的二进制文件,直接运行,不过,得注意下载的版本要与硬件架构、系统版本相符。

官方二进制下载
Ubuntu packages 提供了软件包: gcc-arm-linux-gnueabihf (4:7.4.0-1ubuntu2.3 以及其他的) 。

建议直接从 linaro 的官网下载相应版本的 gcc-linaro 交叉编译工具https://releases.linaro.org/components/toolchain/,并直接选择带有二进制的文件,即在官网入口处选择 binaries 路径https://releases.linaro.org/components/toolchain/binaries/,该文件夹下面包含各种版本的已经编译好的 aarch64-linux-gnu-gcc 二进制可执行程序

x86_64 代表宿主机是64位的,其他的则都为32位的
_be 代表是大端模式,不带该字段的为小端模式

下载完成之后,解压,压缩包里的 bin 目录下,就有我们需要的交叉编译器,直接使用即可。当然,也可以从 ARM 官网下载更多的 GNU Toolchain for the A-profile Architecturehttps://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

初识Mybatis框架技术(上)

文章目录 MyBatis简介MyBatis特性搭建MyBatis 核心配置文件详解 MyBatis简介 MyBatis特性 MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集MyBatis可以使用简单的XML或注解用于配置和原始…

前端基础面试题大全

一、Vue 文章目录 一、Vue1、vue 修改数据页面不重新渲染**数组/对象的响应式 ,vue 里面是怎么处理的?** 2、生命周期Vue 生命周期都有哪些?父子组件生命周期执行顺序 3、watch 和 computed 的区别4、组件通信(组件间传值&#xf…

DAY05_Spring—SpringAopAop案例-缓存控制

目录 1 Spring AOP1.1 AOP介绍1.2 关于AOP名词介绍1.3 通知类型1.4 切入点表达式1.5 AOP入门案例1.5.1 导入jar包1.5.2 准备代码1.5.3 配置切面类1.5.4 编辑配置类1.5.5 编辑测试代码 1.6 关于表达式写法1.6.1 关于annotation切入点相关代码 1.7 关于通知方法测试1.7.1 抽取切入…

Visual Studio 下载安装教程,附安装包和工具,Visual Studio 2022,Visual Studio所有版本都有

前言 Visual Studio是微软推出的一款C编译器,将“高级语言"翻译为"机器语言(低级语言)"的程序,VS是一个非常完整的开发工具集,包括了所有软件生命周期中所需的大部分工具,如UML工具、代码管控工具、集…

Ubuntu 22.04 安装MySql

MySQL是非常常用的关系型数据库,无论是大厂还是小厂,都有它的身影。最大的优点是免费,安装起来也比较简单。 MySQL的架构 画了个简图,描述了下MySQL的架构。 其中的比较有趣的点在于连接池和存储引擎。连接池缓存了数据库和客户端的TCP连接,以减少建立连接的开销。存储引…

裸辞后找工作有多难?分享个人经历+面经+学习路线【内含免费下载初级前端面试题】- 回忆我的2023

👉 个人博客主页 👈 📝 一个努力学习的程序猿 专栏: HTML和CSS JavaScript jQuery Vue Vue3 React TypeScript uni-app Linux 前端面试分享 前端学习方案分享(VitePress、html2canvasjspdf、vuedraggable、videojs) 前端踩坑日记&…

Three.JS教程1 环境搭建、场景与相机

Three.JS教程1 环境搭建、场景与相机 一、Three.JS简介二、环境搭建1. 开发准备2. 安装 three.js3. 新建文件index.htmlmain.js 4. 关于附加组件5. 启动 三、创建场景1. 场景的概念2. 相机的概念3. 相机的几个相关概念(1)视点(Position&#…

tcp/ip协议2实现的插图,数据结构7 (27 - 章)

(166) 166 二七1 TCP的函数 函tcp_drain,tcp_drop (167) (168)

零基础学Python(3)— 注释、代码缩进和编码规范

前言:Hello大家好,我是小哥谈。在使用Python语言进行编程的时候,需要遵循一定的规范标准。本节课就带大家了解下Python语言在注释、缩进和编码方面的规范!~🌈 目录 🚀1.注释 🚀2.代码缩进 &#x1f68…

vue.js安装

1:下载 Node.js 官网:https://nodejs.org/en/download 2:安装 node -v npm -v 3:配置 npm config set prefix "F:\node\node_global" npm config set cache "F:\node\node_cache" 按 win 键并输入“编辑系统环境变量”调出系统属性界面&a…

2024年MacBookPro电脑数据恢复软件EasyRecovery数据恢复

前天新入手了一台MacBook pro,第一次用Mac激动的心情简直难以言喻,可是随后这激动的心情顿时就烟消云散了,因为对Mac操作系统的不熟练,导致我删除了一份很重要的Word文件。MacBook pro如何恢复误删除的文件?就这件事我向朋友求助…

数据库:JDBC、自定义工具类、SQL注入问题

数据库:JDBC、工具类(数据库驱动,连接,释放)、SQL注入(非法操作“欺骗”) 文章目录 数据库:JDBC、工具类(数据库驱动,连接,释放)、SQL…