首先我们写一个简单的练习,命名为exercise1.c
#include <stdio.h>
int main(int argc, char const *argv[])
{
printf("Goodbye, Dannis!
");
return 0;
}
-
直接编译:
exercise1.c
——> 可执行文件exercise1
gcc -o exercise1 exercise1.c
-
预处理:
exercise1.c
——>exercise1.i
gcc -E exercise1.c -o exercise.i
注意:
gcc -E exercise1.c
即是预处理,-o
指定了预处理之后的文件存放的位置。如果去掉-o exercise.i
,预处理之后的内容将直接显示在命令行
上图是exercise1.i文件内容,我们可以看到#include <stdio.h>
被替换成了stdio.h
的文件内容 -
编译:
exercise1.i
——>exercise1.s
gcc -S exercise1.i
上图是exercise1.s文件内容,已经是汇编代码了
-
汇编:
exercise1.s
——>exercise1.o
gcc -c exercise1.s
上图是exercise1.o文件内容,已经被翻译成了机器码
-
链接:
exercise1.o
——> 可执行文件exercise1
gcc exercise1.o -o exercise1
update at 2017/9/20
by 一颗球