0
点赞
收藏
分享

微信扫一扫

GNU工具以及GCC对C语言程序的处理流程

GCC是一族工具的集合,包含预处理器、编译器、汇编器、链接器。
对于默认的文件名,GCC可以自动选择工具自动完成文件处理过程。
从C语言的源程序道可执行文件,实质上是依靠GCC调用一系列工具完成的。

GCC默认处理的文件

文件类型

扩展名

文件说明

文本文件

*.c

C源文件

文本文件

*.c

C源文件

文本文件

*.cpp

C++源文件

文本文件

*.i

预处理后的C源文件

文本文件

*.ii

预处理后的C++源文件

文本文件

*.s

汇编语言

文本文件

*.h

头文件

二进制文件

*.o

目标文件

二进制文件

*.so

动态库(共享库)

二进制文件

*.a

静态库(归档文件)

Binutils工具集合

Binutils是一个二进制工具集合,包含汇编、链接以及一系列的辅助工具。

工具名称

说明

as

GNU汇编器。将处理器的汇编代码转换成可执行代码,并存储道目标文件.o文件中

ld

GNU链接器。将一个或多个目标文件.o库组合成一个可执行程序;或者生成静态库和动态库

ar

归档工具,可以将多个文件组合成一个大文件,并且可以读取原始文件的内容

stripe

取出文件中的符号

nm

用来显示目标文件中的符号

objectcopy

转换成二进制代码的工具

objdump

显示目标文件的反汇编工具

readelf

显示ELF文件中的各种信息

string

显示文件中的可打印字符

ranlib

产生归档文件的索引,并将其保存到归档文件中,索引同时列出归档文件各成员所定义的可重分配目标文件

addr2line

可以将一个可执行程序的地址映射到源文件的对应行

gprof

显示程序调用段的各种数据

C语言编译工作流程

分为4步:
1、预处理:生成.i文件
2、编译:将预处理后的文件转换成汇编语言,生成文件.s
3、汇编:由汇编代码生成目标代码,即机器代码,生成可执行文件.o
4、链接:有各个文件的目标代码生成可执行程序
GNU工具以及GCC对C语言程序的处理流程_编译器


举报

相关推荐

0 条评论