(1)make及makefile 概念和作用
在大型的开发项目中,通常有几十到上百个的源文件,如果每次均手工键入gcc命令进行编译的话,则会非常不方便。
利用make工具来自动完成编译工作,包括:a)如果仅修改了某几个源文件,则只重新编译这几个源文件;b)如果某个头文件被修改了,则重新编译所有包含该头文件的源文件。make工具通过makefile文件来实现自动化编译。Make工具不仅应用于编程,也可以用于描述一些文件改变时,需要自动更新另一些文件的任务。
make机制的运行需要一个命令行程序make和一个名为makefile或Makefile的文本文件。make是一个命令工具,具体来说是一个解释makefile或Makefile中的指令的命令工具。
make程序执行时,若不通过“-f”选项明确指定,它会在当前目录下先搜索名为makefile的文件,若找不到,就查找名为Makefile的文件。按照传统,许多Linux选择文件名Makefile,这样的话,若Makefile所在目录下其他的文件名均为小写,则在显示该目录的文件列表时,Makefile会出现在第一个。(参数‘-f name’或‘--file=name’)
(2)以下是一个简单的makefile使用示例:
程序功能:用户输入一个字符串,内有若干个字符,然后再输入一个字符,要求程序将字符串中的该字符删去,最后打印显示处理后的字符串。为演示make工具编译多个源程序文件的方法,将程序分为4个源文件:main.c、f1.c、f2.c、f3.c。f1.c实现字符串的输入;f2.c负责删除字符串中的某个特定字符(该字符由用户输入),f3.c输出处理后的字符串;main.c负责对各个程序模块的调用。源程序如下图: