32位汇编语言由于需要使用nmake命令将汇编语言编译、链接,所以需要指定编译与链接的顺序,从而使得编译器能够知道如何编译各个源文件并链接生成相应的编译工作,而描述文件需要某种语法进行编写,所以需要掌握makefile文件的写法(makefile文件位于同一个汇编语言文件夹中)
关于配置汇编环境请看我的另一篇博客https://blog.csdn.net/znevegiveup1/article/details/104073948
这里将makefile文件的写法分为几大类
1.只有一个简单的asm文件,对这个文件写makefile文件
#这里指定要编译文件的asm名称为hello
NAME = Hello
OBJS = $(NAME).obj#输出的obj文件的名称也为hello
#下面两句为固定写法
LINK_FLAG = /subsystem:windows #链接选项
ML_FLAG = /c /coff #编译选项
#定义依赖关系,.exe只需由objs文件生成
$(NAME).exe: $(OBJS)
Link $(LINK_FLAG) $(OBJS)
#定义汇编编译和资源编译的默认规则
.asm.obj:
ml $(ML_FLAG) $<
#清除临时文件
clean:
del *.obj
2.需要rc资源文件的例子
EXE = Test.exe #指定输出文件
OBJS = Test.obj #需要的目标文件
RES = Test.res #需要的资源文件
LINK_FLAG = /subsystem:windows #连接选项
ML_FLAG = /c /coff #编译选项
$(EXE): $(OBJS) $(RES)
Link $(LINK_FLAG) $(OBJS) $(RES)
.asm.obj:
ml $(ML_FLAG) $<
.rc.res:
rc $<
clean:
del *.obj
del *.res
本文详细介绍32位汇编语言环境下,如何使用makefile进行编译与链接,包括单一asm文件及包含rc资源文件的情况,提供具体语法实例,帮助读者快速上手。

被折叠的 条评论
为什么被折叠?



