Dotfish

博客园 首页 新随笔 联系 订阅 管理

gcc的编译流程:

源代码(*.c)——>预处理(Pre-Processing)——>编译(Compiling)——>汇编(Assembing)——>链接(Linking)——>可执行文件

一个例子:一个经典的helloworld的程序

1).先用vim编辑源程序,保存为hello.c .

vim hello.c

2)然后用gcc的“-E”参数预处理,生成经过预处理的源程序文件hello.i

gcc hello.c -o hello.i -E

3)接着用gcc的“-S”参数编译,生成汇编语言程序文件hello.s

gcc hello.i -o hello.s -S

4)然后用gcc的“-c”参数汇编,生成二进制文件hello.o

gcc hello.s -o hello.o -c

5)再用一次gcc,把hello.o和一些用到链接库文件,链接成可执行文件hello

gcc hello.o -o hello

 

除了编译流程上经常使用的参数,这里还列出其它的一些常用参数:

-g:可执行程序中包含调试信息(下面使用gdb调试程序时会用到)

-v:显示gcc的版本

-I dir:在头文件的搜索路径中添加dir目录

-L dir:在库文件的搜索路径中添加dir目录

-Wall:允许发出gcc提供的所有有用的告警信息

 

posted on 2012-11-27 15:07  Peter Wang  阅读(126)  评论(0编辑  收藏  举报