交叉编译知识解析(二) —— 交叉编译器的名字的命名规则

本文详细介绍了交叉编译器的命名规则,包括架构(arch)、供应商(vendor)、内核(kernel)和系统(system)四个部分,如arm-linux-gnueabi-gcc。讨论了不同部分的含义,如arm-none-eabi对应无操作系统环境,arm-none-linux-gnueabi适用于Linux环境,并提到了不同库的选择,如glibc和uclibc。
摘要由CSDN通过智能技术生成

      在折腾嵌入式开发,用到交叉编译器的时候,常常会看到这样的名字:

arm-xscale-linux-gnueabi-gcc

arm-liunx-gnu-gcc

等等

       其中,对应的交叉编译器的前缀为:

arm-xscale-linux-gnueabi-

arm-liunx-gnu-

     下面以编译crosstool-ng中:通过ct-ng list-samples中得到的输出为例,当做交叉编译器的名字的例子,供参考:



交叉编译工具链的命名规则为:

arch [-vendor] [-os] [-(gnu)eabi]

arch – 体系架构,如ARM,MIPS

vendor – 工具链提供商

os – 目标操作系统

eabi – 嵌入式应用二进制接口(Embedded Application Binary Interface)


    根据对操作系统的支持与否,ARM GCC可分为支持和不支持操作系统,如

arm-none-eabi:这个是没有操作系统的,自然不可能支持那些跟操作系统关系密切的函数,比如fork(2)。他使用的是newlib这个专用于嵌入式系统的C库。

arm-none-linux-eabi:用于Linux的,使用Glibc


下面是详细解析

一、交叉编译器的命名规则

1、交叉编译器名字中的arch部分

          arch,即系统架构

          表示交叉编译器,是用于哪个目标系统架构中,用于那个平台中的。即,用此交叉编译器编译出来的程序,是运行在哪种CPU上面的。

          arch的值,常见的有很多种,比如arm,x86,mips等等。

举例:交叉编译器中的arch的值

arm-cortex_a8-linux-gnueabi中的arm

mips-ar2315-linux-gnu中的mips

powerpc-e500v2-linux-gnuspe中的powerpc

x86_64-unknown-mingw32中的x86_64


1.1 crosstool-ng中arch的值

       crosstool-ng中,和arch对应的值,应该就是"Target options"中的"Target Architecture"的值了。

       比如常见的,配置为arm的话,就是:


      对应的配置参数是:ARCH_arm


2、交叉编译器名字中的vendor部分

          vendor,即生成厂家,提供商

          表示谁提供的,即谁制作出来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值