makefile文件写法解析

Posted 诸子流

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了makefile文件写法解析相关的知识,希望对你有一定的参考价值。

一个makefile文件如下:

# this is a makefile                        #这一行是注释
NAME = MemInfo.exe                          #下来这几行是宏定义,相当于linux的变量
OBJS = $(NAME).obj
RES  = $(NAME).res

LINK_FLAG = /subsystem:windows
ML_FLAG = /c /coff

$(NAME): $(OBJS) $(RES)                     #这一行指出最终生成的exe文件依赖哪些obj和res文件
    Link $(LINK_FLAG) $(OBJS) $(RES)        #这一行是生成exe时执行的链接命令;命令和我们手动执行时一致所以是显示规则

.asm.obj:                                   #这一行表示.asm文件转成.obj文件要使用下边这个语句
    ml $(ML_FLAG) $<                        #这一行是使用.asm转.obj的编译命令;$<表示对当前目录下所有.asm文件进行编译且编译生成的.obj文件使用和原来.asm文件一样的名字
.rc.res:                                    #这一行表示.rc文件转成.res文件要使用下边这个语句
    rc $<                                   #这一行是使用.rc转.res的编译命令;$<表示对当前目录下所有.rc文件进行编译且编译生成的.res文件使用和原来.rc文件一样的名字

clean:                                      #这一行表示最后要执行以下的清除命令
    del *.obj                               #删除当前目录下的所有.obj文件
    del *.res                               #删除当前目录下的所有.res文件

从组成元素看,一个makefile由注释、宏定义、显示规则和隐式规则四种元素组成

从组成结构上看,一个makefile由注释、宏定义、exe依赖和obj/res转exe的链接命令、obj依赖及asm转obj的编译命令、rc转res的编译命令、清除中间文件命令组成

以上是关于makefile文件写法解析的主要内容,如果未能解决你的问题,请参考以下文章

Makefile常用写法

Makefile常用写法

[Makefile]多目录Makefile写法

多个文件目录下Makefile的写法

多个文件目录下Makefile的写法

大型工程多个目录下的Makefile写法