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链接。