一个比较标准的中型项目的目录结构大致如下:
如何对这样一种结构的项目文件进行编译链接,并且能够方便的添加新的文件并且减少不必要的编译,这就是Makefile
需要做的事情
1. 如何写一个便于进行项目管理的Makefile
1.1 理解c程序是如何被生成的
1.1.1 编译
对于源程序如main.c
,需要经过预处理,编译,生成可重定向文件main.o
,然后继续进一步操作。这个步骤,使用gcc
来完成是这样的
gcc -c main.c
这样,通过使用-c
选项,gcc
会对main.c
文件进行预处理,编译,汇编生成main.o
文件
1.1.2 链接
生成了重定向文件main.o
,还差最后一个步骤:将生成的可重定向文件链接生成可执行文件。
使用gcc
来完成这项操作:
gcc main.o -o main
- 使用
-o
选项指定目标文件名为main
,同时gcc
会自动识别