您的位置:首页 > 其它

GCC编译过程

2014-02-27 21:08 225 查看
第一步 预处理后结束 参数-E

gcc -E hello.c -o hello.i

查看hello.i文件中的内容

cat hello.i

stdio.h的内容插入到文件里去了,宏定义也在预处理中都做了相应的处理

第二步 将hello.i 编译为 目标代码 参数 -c

gcc -c hello.i -o hello.o

第三步 将生成的目标文件链接成为可执行文件

gcc hello.o -o hello

将多个源文件进行编译并最终生成可执行程序

命令:gcc foo1.c foo2.c -o foo

相当于

gcc -c foo1.c -o foo1.o

gcc -c foo2.c -o foo2.o

#gcc foo1.o foo2.o -o foo

在编译一个包含许多源文件的工程时,若只用一条GCC命令来完成编译是非常浪费时间的。

假设项目中有100个源文件需要编译,并且每个源文件中都包含 10000行代码,如果像上面那样仅用一条GCC命令来完成编译工作,那么GCC需要将每个源文件都重新编译一遍,然后再全部连接起来。

尤其是当用户只是修改了其中某一个文件的时候,完全没有必要将每个文件都重新编译一遍,因为很多已经生成的目标文件是不会改变的。

要解决这个问题,关键是要灵活运用GCC,同时还要借助像Make这样的工具。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: