4、工具链入门指南

工具链入门指南

1. 工具链简介

工具链中的元组能指示CPU、内核和用户空间的信息。例如 x86_64-linux-gnu 表示x86_64的CPU、Linux内核和GNU用户空间。当在机器上安装原生编译器时,通常会为工具链中的每个工具创建无前缀的链接,这样就能使用 gcc 命令调用C编译器。

下面是使用交叉编译器的示例:

$ mipsel-unknown-linux-gnu-gcc -dumpmachine
mipsel-unknown-linux-gnu

这个元组表示小端MIPS的CPU、未知厂商、Linux内核和GNU用户空间。

2. 选择C库

Unix操作系统的编程接口是用C语言定义的,现在由POSIX标准规定。C库是该接口的实现,是Linux程序访问内核的通道。即使使用Java或Python等其他语言编写程序,各自的运行时支持库最终也会调用C库。

C库需要内核服务时,会使用内核系统调用接口在用户空间和内核空间之间进行转换。虽然可以直接进行内核系统调用绕过C库,但这很麻烦且几乎没必要。

常见的C库有以下几种:
| C库名称 | 特点 | 适用场景 | 许可证 |
| ---- | ---- | ---- | ---- |
| glibc | 标准GNU C库,功能完整但体积大,配置性曾较差 | 一般情况 | LGPL 2.1 |
| musl libc | 较新的库,体积小且符合标准 | 内存和存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值