相比于gcc命令,通过make工程管理器编译程序则更加高效。GCC提供的Make是半自动编译,因为编译规则是人工编写的程序,将保存在Makefile文件中。Make工程管理器具有以下两个优点:
1.使用方便。通过命令即可根据Makefile中的编译规则对程序进行编译
2.调试效率高。make会对每个源文件的时间进行判断,只有被修改过的文件才会进行编译,大大减少了编译工作量
Makefile的编写
三项基本内容:
·需要生成的目标文件
·生成目标文件所需要的以来文件
·声称目标文件的编译规则命令行
格式如下:
- target file : depedency file
- cammand
- <span style="font-family:KaiTi_GB2312;">其中command命令行在书写前要按<span style="color:#cc0000;">Tab</span>键</span>
举例:编译程序有a.c b.c b.h
- test : a.o b.o
- cc -o test a.o b.o
- a.o : a.c b.h
- cc - c a.c
- b.o :b.c
- cc -c b.c
- 上述只是简单的Makefile文件,如果需要编译的文件比较多,则需要编写总控Makefile文件来对功能子目录下的Mikefile文件进行编译。这时候需要一个scripts目录的Mikefile文件来定义许多变量(相当于c语言的头文件)。
总控Makefile的作用就是进入各个子目录里执行make目录,将所有的.o文件链接成可执行文件;
功能子目录下的Makefile的作用就是将src目录下的.c文件编译成为.o文件