gcc的整套编译开发工具链包括以下工具:
(1)Binutils: 一组用于编译、链接、汇编和其他调试目的的程序,包括ar, as, ld, nm, objcopy, objdump, ranlib, readelf, size, strings, strip等。
工具名 | 说明 |
ar | 生成静态库 |
as | 汇编器 |
ld | 链接器。在链接过程中,由gcc调用链接器ld,将用户编译生成的目标文件连同系统的glibc启动代码链接在一起,形成最终的可执行文件 |
nm | 查看目标文件中的符号 |
objcopy | 将源目标文件中的内容复制到新的目标文件中,可以通过不同的命令选项调整目标文件的格式,例如去除某些ELF文件头 |
ranlib | 为静态链接库创建索引,相当于ar命令的s选项 |
readelf | 解读ELF文件头 |
size | 列出目标文件每一个段的大小和总的大小 |
strings | 列出目标文件中的字符串 |
strip | 去除目标文件中所有符号,使目标文件尺寸减小 |
(2)gcc : gnu的编译器集合,Linux环境正點认的C语言编译器。
(3)glibc: gnu的C语言标准函数库。该库实现Linux系统函数,例如open、read等,也实现标准C语言库,如printf等。几乎所有应用程序都需要与glibc链接。