Windows 环境下32位汇编语言程序设计 Makefile文件定义

#makefile文件定义

#*************************************************************************
#nmake工具的描述文件例子                            
#x.asm + 头文件common.inc 经ML.exe编译成:x.obj        
#y.asm + 头文件common.inc + y.inc 经ML.exe编译成:y.obj
#资源脚本文件x.rc,经过Rc.exe编译成x.res             
#最后x.obj + y.obj + x.res 经Link.exe链接成test.exe   
#*************************************************************************

#注释:以#开头的一行为注释,换行符“/”之后不能写注释

#宏定义
#*************************************************************************
#1、引用宏时只需在变量前加“$”符号
#2、如果变量超过一个字符,引用时需加()
#3、如需修改宏定义,只要在命令行用新的宏定义覆盖如:
#       namke ML_FLAG="/c /coff /Fl"       
#宏名称要区分大小写,ML_FLAG和ml_flag是不一样的,定义值
中有空格的时候要用双引号引起来(如无空格:ML_FLAG=/c)
#*************************************************************************

EXE = Test.exe                              #指定输出文件
OBJS = x.obj \
        y.obj                               #需要的目标文件
RES = x.res                                 #需要的资源文件

LINK_FLAG = /subsystem:windows              #链接选项
ML_FLAG = /c /coff                          #编译选项

#显示规则 定义依赖关系和执行命令
#*************************************************************************
#1、nmake默认将整个描述文件的第一条规则中的目标文件认为最终文件
#2、在nmake的命令行参数中可以指定要生成的目标如:nmake x.res
#   参数可以带好几个目标文件名,namke会一一处理,若指定的目标文件
#   没有对应的规则,nmake会返回一个出错信息:
#        fatal error U1073:don't know how to make ‘xxx文件’
#*************************************************************************
$(EXE): $(OBJS) $(RES)
        LINK $(LINK_FLAG) /out:$(EXE) $(OBJS) $(RES)
$(OBJS):Common.inc
y.obj: y.inc

#隐式规则 定义汇编编译和资源编译的默认规则
#************************************************************************
#1、隐式规则不能有依赖文件
#2、隐式规则中无法指定确定的输入文件名,因为输入文件名是泛指具有
#   相同扩展名的一整类文件,这时候需要几个特殊内定宏指定文件名:
#       $@————全路径的目标文件   
#       $*————除去扩展名的全路径的目标文件
#       $?————所有源文件名
#       $<————源文件名(只能用在隐式规则中)
#************************************************************************

.asm.obj:
        ml $(ML_FLAG) $<
.rc.res:
        rc $<
       
#清除临时文件       
#*************************************************************************
#键入nmake clean的时候,工作命令下没有clean这个文件,nmake会去执行
#clean定义中的命令
#*************************************************************************
clean:
        del *.obj
        del *.res

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值