ARM学习(19)交叉编译工具链的理解

article/2025/9/18 10:39:32

笔者来聊聊交叉编译工具链

1、认识

正常理解的,比如windows下编译出来windows上面运行,visual stdio,等,这是因为windows有能力编译出来,有对应的VC工具链,这是本地编译。

假如一个51板子或者stm32板子,只有几k 几十k的RAM和ROM,没有文件系统,操作系统等,根本没有能力去编译出可以执行程序,所以就需要借助于其他平台,编译出本平台可执行的程序,这就是交叉编译,

在这里插入图片描述

不一定是没有能力编译才交叉编译,可能是不方便,或者编译慢的原因。

同一种平台,但是架构不一样也是交叉编译,比如同样都是linux ,x86的gcc 来编译linux aarch64架构的可执行程序。如图1,系统是linux 架构是x86_64,编译出来时aarch64,图二就是aarch64架构的linux系统
在这里插入图片描述
在这里插入图片描述

场景的keil(armcc armclang) 、IAR(iccarm)、rt-thread stduio(arm-none-eabi-gcc)等都是交叉编译,
最常见的就是gcc的工具链,很多平台下面都有这个,windows、linux、Android以及MACOS等。

2、常见的交叉编译工具链

由于gcc 工具链是GNU项目开源的软件,所以其用途也比较广,很多工具链都是基于此来编译出来的。

  1. am-none-eabi-gcc:没有操作系统(指无需运行在操作系统,依赖操作系统),目标target 是arm端,eabi:嵌入式二进制接口,图1
  2. riscv-none-embed-gcc:没有操作系统,目标target 是riscv,面向的是嵌入式的接口,图2 图3
  3. aarc64-linux-android-clang:操作系统是linux,目标target架构是aarch64,操作系统是Android 图5
  4. x86_64-unknown-linux-gnu-gcc:目标架构是x86_64 操作系统是linux,windows 编译出linux可执行程序 图6
  5. aarch64-linux-gun-gcc: 目标架构是aarch64 操作系统是linux ,是x86 架构的linux编译出可执行的文件图7

在这里插入图片描述
图1
在这里插入图片描述
图2
在这里插入图片描述
图3
在这里插入图片描述
图4
在这里插入图片描述
图5
在这里插入图片描述
图6
在这里插入图片描述
图7

3、交叉编译工具链编译

1、window上交叉编译linux目标程序教程,可参考这位老哥的编译。
2、交叉编译工具链一般使用crosstool-ng,如下图
在这里插入图片描述


http://chatgpt.dhexx.cn/article/buJUXBSk.shtml

相关文章

交叉编译工具链配置

第一步, 将文件放在Linux根目录下(目录可以自己选择,记住即可),通过下面命令解压: unzip aarch64-poky-linux-7.3-glibc-2.27.zip第二步: cd aarch64-poky-linux-7.3-glibc-2.27目录下&#…

构建gcc交叉编译工具链

如何构建一个GCC交叉编译工具链 GCC不仅是一个编译器,它是一个开源工程,可以让你建立各种编译器。一些编译器支持多线程,一些支持共享库,一些支持Multilib(典型的应用是在64位机上运行32位应用程序)&#…

ARM交叉编译工具链分类说明

为什么要用交叉编译器? 交叉编译通俗地讲就是在一种平台上编译出能运行在体系结构不同的另一种平台上的程序,比如在PC平台(X86 CPU)上编译出能运行在以ARM为内核的CPU平台上的程序,编译得到的程序在X86 CPU平台上是不…

ARM-Linux 交叉编译工具链安装

创建时间:2022-04-12-23:10 说明:在Linux下安装arm-linux交叉编译工具链 修改时间: 修改内容: 1. 前言 在ubuntu中系统自带的gcc编译器是基于x86架构的,通过该编译器编译出来的代码只能在x86架构上运行。 如果需要在x…

【linux】安装Linux的交叉编译工具链

1、linux中装软件的特点 linux中安装软件比windows中复杂。linux中安装软件一般有以下几种方法: 第一种:在线安装。譬如ubuntu中使用apt-get install vim来安装vim软件。 第二种:自己下载安装包来安装。这种方式的缺陷就是你不知道你…

制作交叉编译工具链

制作交叉编译工具链 编写可以在ARM上运行的程序需要使用arm-linux-gcc交叉编译工具。因此,需要制作一套交叉编译器工具链,使用它,可以让代码运行在ARM平台上。 制作arm-linux交叉编译工具链一般通过crosstool工具或者crosstool-NG&#xff…

【交叉编译】配置交叉编译工具链

配置交叉编译工具链 一、 设置交叉编译工具链1.永久生效2.临时生效3.手动指定 二、测试交叉编译工具链1.测试环境变量:2.测试交叉编译器: 一、 设置交叉编译工具链 交叉编译工具链用来在Ubuntu主机上编译应用程序,而这些应用程序是在ARM等其…

【编译原理】交叉工具链详解

1、嵌入式开发模型-交叉开发 在嵌入式开发过程中有宿主机和目标机的角色之分,宿主机是执行编译、链接嵌入式软件的计算机,目标机是运行嵌入式软件的硬件平台。在宿主机执行编译的流程如下: 而所谓的交叉编译就是:在一种平台上编…

linux交叉编译工具链安装

交叉编译器中“交叉”的意思就是在一个架构上编译另外一个架构的代码,相当于两种架构“交叉”起来了。   交叉编译器有很多种,我们使用 Linaro 出品的交叉编译器,Linaro 一间非营利性质的开放源代码软件工程公司,Linaro 开发了很…

常用的交叉编译工具链

交叉编译工具链是一种用于在一个平台上编译另一个平台上运行的程序的软件工具集,它通常包括编译器、链接器、汇编器等组件。 交叉编译工具链的命名一般遵循 target-platform-triplet 的格式,例如 arm-linux-gcc 表示用于生成 ARM 平台上 Linux 系统下运…

基于cmake的交叉编译工具链

基于cmake的交叉编译工具链 本文转载自:https://segmentfault.com/a/1190000019276315,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有。 一、基本概念 1. 什么是交叉编译 交叉编译是A机器上编译生成,运行在B机…

交叉编译工具链建立与常识

交叉编译工具链的命名规则 arch [-vendor] [-os] [-(gnu)eabi] arch – 体系架构,如ARM,MIPS,对于MIPS可能还分大端模式mips或者小端模式mipsel; vendor – 工具链提供商,可能有的工具链会省去这个字段,…

交叉编译工具链的安装和配置过程

1. 编译工具链基本介绍 C/C程序需要编译成二进制的机器码才能被CPU识别运行,而编译程序就需要用到编译器,比如我们常用的gcc编译器。 gcc编译器,其实只是编译工具链的其中一个工具而已,实际上整个编译工具链包含了:g…

编译工具链和交叉编译工具链简易说明

文章目录 编译工具链交叉编译工具链 编译工具链 做C/C开发特别是嵌入式方向的肯定会涉及编译工具链和交叉编译工具链相关内容。 C/C的程序需要经过 gcc 等编译成二进制程序才能被计算机使用,这里的 gcc 通常是泛指,包括 gcc 、 g 、ar 、as 、ld 等一系…

Linux vim分屏,如何切换窗口

1.使用 :vsp 2.若想切换窗口,从左边切换到右边,crtlw 点击两次

alt tab无法切换窗口

alt tab无法切换窗口 1. 在桌面新建 a.txt 文件 2. 在文件中输入下面内容 REGEDIT4 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer] "AltTabSettings"dword:000000013. 将文件改为 a.reg 4. 双击文件, 点击所有确定/是 5.重启电脑

Win7系统怎么改变Alt+Tab切换窗口数量,改变Alt+Tab切换窗口数量的方法

我们在使用Win7电脑办公的时候,常常会需要用到切换窗口的快捷键AltTab,这样可以快速切换不同的程序界面,提高工作效率,但是AltTab切换窗口的数量是固定的,不过我们可以改变这个数量,下面小编给大家介绍Win7…

win10系统使用快捷键无法切换窗口怎么办

但是最近,有win1064位系统用户在使用快捷键切换窗口时发现切换不了,那么碰到win10系统使用快捷键无法切换窗口怎么办呢?今天就为大家介绍win10系统使用快捷键无法切换窗口的解决方法。 快捷键无法切换窗口 1、点击开始菜单,选择运行&#…

Linux中如何上下左右切换窗口

linux中如何上下左右切换窗口 ##第一步 将图中show miniature view勾选中,此时窗口会变成最小显示窗口,此时窗口就可以通过ctrlAlt方向键,进行上下左右切换。 ##第二步 将第一步勾选的show miniature view去掉,此时窗口变得正常&a…

win10 edge切换窗口,取消edge窗口为多个,改为独立窗口

win10系统 edge切屏问题 问题情况 edge切屏的时候会显示edge其他的窗口界面,而不是所有的edge十一个窗口的显示情况 解决方法 第一步 找到设置 第二步 搜索多窗口 点击第一个多任务设置 第三步,找到alttab选项 如下图所示 第四步&#x…