GCC编译过程

第一步 预处理后结束 参数-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这样的工具。

发布了15 篇原创文章 · 获赞 0 · 访问量 1万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章