如何在linux下写makefile
Make工具最主要也是最基本的功能就是通过makefile文件来描述源程序之间的相互关系并自动维护编译工作。而makefile 文件需要按照某种语法进行编写,文件中需要说明如何编译各个源文件并连接生成可执行文件,并要求定义源文件之间的依赖关系。
make命令的选项与参数
语法
makefile文件由一组依赖关系和规则组成。每个依赖关系由一个目标(即将要创建的文件)和一组该目标所依赖的源文件组成。
依赖关系
依赖关系定义了最终应用程序里的每个文件与源文件之间的关系。
上面两行就是依赖关系:目标a.out:依赖于main.o,目标main.o依赖于main.c和main.h。所以,如果main.c和main.h发生更改,则需要重新编译整个程序。
如果需要一次创建多个目标文件,则使用为目标all:
注意:如果未指定一个all目标,则make命令只创建makefile文件的第一个目标。
规则
规则定义了目标的创建方式。
注意:规则所在行必须以制表符tab开头。
下面就是一个简单的例子:
make命令会自行判断文件的正确顺序,并使用给出的规则创建相应的文件,并在屏幕显示出来。如果多次编译,则make命令会读取makefile文件来确定重建目标的最少命令,而不会重复编译。
注释
makefile文件的注释以#开头,到一行的结束。
宏
makefile文件中也可以定义宏,也可以用make命令时在命令行定义,如果需要使用文件外部定义,最好不要用空格。
然后就完了。