首页 理论教育 使用GNU跨平台开发工具链实现嵌入式Linux操作

使用GNU跨平台开发工具链实现嵌入式Linux操作

时间:2023-10-21 理论教育 版权反馈
【摘要】:与主流软件的开发非常类似,嵌入式Linux开发也需要用到编译器、链接器、解释程序、集成开发环境,以及诸如此类的其他开发工具。针对嵌入式Linux的开发,通常采用GNU跨平台开发工具链,主要包括gcc、binutils、glibc和gdb。gcc是GNU计划的一个项目,是一个用于编程开发的自由编译器。通常binutils与gcc是紧密相集成的,没有binutils的支持,gcc不能正常工作。glibc是GNU计划发布的libc库,也即c运行库。glibc实现了Linux系统中最底层的API,几乎其他任何的运行库都会倚赖于glibc。

使用GNU跨平台开发工具链实现嵌入式Linux操作

与主流软件的开发非常类似,嵌入式Linux开发也需要用到编译器、链接器、解释程序、集成开发环境,以及诸如此类的其他开发工具。针对嵌入式Linux的开发,通常采用GNU跨平台开发工具链,主要包括gcc、binutils、glibc和gdb。

gcc是GNU计划的一个项目,是一个用于编程开发的自由编译器。如今的gcc已经是一个支持众多语言的编译器了,包括 C、C++、Ada、Object C、Java及Go等语言。

gcc主要包括了cpp(预处理器)、gcc(C编译器)、g++(C++编译器)等编译器,以及binutils等二进制工具。binutils提供了一系列用来创建、管理和维护二进制目标文件的工具程序,包括汇编工具(as)、链接工具(ld)、静态库归档工具(ar)、反汇编工具 (objdump)、elf结构分析工具(readelf)、无效调试信息和符号的工具(strip)等。通常binutils与gcc是紧密相集成的,没有binutils的支持,gcc不能正常工作。

glibc是GNU计划发布的libc库,也即c运行库。glibc实现了Linux系统中最底层的API(应用程序开发接口),几乎其他任何的运行库都会倚赖于glibc。glibc除了封装Linux操作系统所提供的系统服务外,它本身也提供了许多其他一些必要功能服务的实现:

1)string,字符串处理

2)signal,信号处理

3)dlfcn,管理共享库的动态加载

4)direct,文件目录操作

5)elf,共享库的动态加载器,也即interpreter

6)iconv,不同字符集的编码转换

7)inet,socket接口的实现(www.xing528.com)

8)intl,国际化,也即gettext的实现

9)locale,本地化

10)login,虚拟终端设备的管理及系统的安全访问

11)malloc,动态内存的分配与管理

12)stdlib,其他基本功能

gdb是GNU计划发布的程序调试工具,gdb可以完成以下四个方面的功能:

1)启动程序,按照自定义的要求运行程序

2)可让被调试的程序在所指定的位置的断点处停住(断点可以是条件表达式)

3)当程序被停住时,可以检查此时程序中所发生的情况

4)动态的改变程序的执行环境

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈