使用gcc不同选项来编译查看中间生成文件

gcc编译C程序的总体流程如下图

使用gcc不同选项来编译查看中间生成文件_第1张图片

用到的命令如下:

  1. .c---> .i
gcc -E hello.c
  1. .c--->.s
gcc -S hello.c
  1. .c--->.o
gcc -c hello.c
  1. .c--->.out
gcc hello.c
  1. .o反汇编
objdump -d hello.o

下面通过一个例子演示一下

首先建立一个hello.c和一个hello.h

使用gcc不同选项来编译查看中间生成文件_第2张图片

然后使用第一条命令  gcc -E hello.c

使用gcc不同选项来编译查看中间生成文件_第3张图片

预处理的文件内容特别多,截图只是部分内容。

然后查看汇编程序文件   gcc -S hello.c

使用gcc不同选项来编译查看中间生成文件_第4张图片

可以看到,已经生成了一个.s文件,里面的内容很多很杂。

然后编译生成目标文件     gcc -c hello.c

由于目标文件是二进制文件,所以不能通过文本编辑器进行查看。

链接后生成可执行文件  gcc hello.c

使用gcc不同选项来编译查看中间生成文件_第5张图片

还可以通过objdump反汇编工具查看反汇编代码    objdump -d hello.o

使用gcc不同选项来编译查看中间生成文件_第6张图片

反汇编的代码比直接生成的汇编代码要更简洁易读(省去了很多冗余信息)

转载于:https://www.cnblogs.com/zhaijiayu/p/11404294.html

你可能感兴趣的:(使用gcc不同选项来编译查看中间生成文件)