由foo1.c foo2.c foo3.c 3个源文件组成的源程序生成最终的可执行程序foo的命令:
gcc foo1.c foo2.c foo3.c -o foo
如果处理的源文件不止一个,则gcc会依次对每个文件进行预处理、编译、汇编,最后将所有的目标代码和库文件进行,链接生成可执行程序。即等价于以下步骤:
gcc -c foo1.c -o foo1.o
gcc -c foo2.c -o foo2.o
gcc -c foo3.c -o foo3.o
gcc foo1.o foo2.o foo3.o -o foo
当一个工程包含许多源文件时,采用这种方式(仅用一个gcc命令)来对每个源文件进行编译是非常浪费时间的。另外,如果其中一个文件进行了修改,则需要对所有的文件进行重新编译,显然这是不必要的。因此灵活使用gcc和make是非常重要的。