与主流软件的开发非常类似,嵌入式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)动态的改变程序的执行环境
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。