gcc编译C程序的总体流程如下图
用到的命令如下:
- .c---> .i
gcc -E hello.c
- .c--->.s
gcc -S hello.c
- .c--->.o
gcc -c hello.c
- .c--->.out
gcc hello.c
- .o反汇编
objdump -d hello.o
下面通过一个例子演示一下
首先建立一个hello.c和一个hello.h
然后使用第一条命令 gcc -E hello.c
预处理的文件内容特别多,截图只是部分内容。
然后查看汇编程序文件 gcc -S hello.c
可以看到,已经生成了一个.s文件,里面的内容很多很杂。
然后编译生成目标文件 gcc -c hello.c
由于目标文件是二进制文件,所以不能通过文本编辑器进行查看。
链接后生成可执行文件 gcc hello.c
还可以通过objdump反汇编工具查看反汇编代码 objdump -d hello.o
反汇编的代码比直接生成的汇编代码要更简洁易读(省去了很多冗余信息)