GNU 是 GNU is Not Unix 的缩写,它是 1984 年由麻省理工学院的Richard Stallman 组织开发
的,旨在发展一个类-Unix 且为自由软件的完整操作系统:GNU 系统。这是由于在70 年代末期 AT
&T 对Unix 的使用和发布强制实施版权控制后,出于对软件应该自由使用的信念而诞生的。因此
GNU 的所有软件和开发工具都是免费并且开放源代码的,这与商业开发工具完全不同,给了从事开
发的技术人员以极大的自由。
GCC 是 GNU 项目中最重要的成果,也是自由软件最为核心的开发工具-编译器。GCC 最初
支持 C、C++ 和 Object C 三种语言,而后则发展到支持 Ada、Fortran、Pascal、Java 等多种语言,
并且可以在多种开发平台上使用,包括 Windows、OS/2、Unix、Linux 等。
GCC 并不单单是一个编译器,实际上它包含了一个很大的编译器族,GCC 高度的可移植性决定
了它几乎支持绝大部分的硬件平台,例如x86,alpha,m68k,Power PC,MIPS,SPARC,当然也包
含 ARM 系列。命名原则是在gcc 前面用相应的前缀标识与特定平台相关的,例如 arm-elf-gcc 表示
在 ARM 平台上使用的交叉编译器。与交叉编译器配合使用的还有一系列的工具,表2-2 中可以看
到主要用到的一些工具名称和用途。
表2-2 GNU 开发工具软件列表
工具名 作用描述
命令行开发工具
arm-elf-gcc GNU C 编译器
arm-elf-g++ GNU C++ 编译器
arm-elf-as GNU 汇编语言编译器
arm-elf-ld GNU 目标代码连接器
arm-elf-gdb GNU 调试器
arm-elf-ar GNU 库文件生成工具
其他辅助工具
make 项目管理工具
CVS 版本控制工具
arm-elf-objcopy 将 elf 格式文件转换成二进制文件
arm-elf-objdump 显示 elf 格式文件中的反汇编代码
arm-elf-nm 列出 elf 文件的符号表相关信息
arm-elf-readelf 生成 elf 文件信息及其内部各段信息
arm-elf-size 列出 elf 文件各个段的大小及其位置
arm-elf-strip 将不必要的代码去掉以减少可执行文件大小
arm-elf-strings 列出 elf 文件中的字符串常量
阅读(2062) | 评论(0) | 转发(1) |