写在前面
最近在读罗云彬的《Windows环境下32位汇编语言程序设计》,书中推荐使用nmake进行编译,nmake和cmake、以及linux自带的make工具,基本都依赖于makefile,在此记录一下namke语法,方便后面查阅。
ps:nmake.exe是VS的附带工具之一,可以使用everything迅速查找。
makefile
#源文件
ASM = helloworld.asm
#生成的obj文件名
OBJS = helloworld.obj
#生成的exe文件名
EXE = helloworld.exe
#链接参数,如果不需要控制台窗口,将console改为windows
LINK_FLAG = /subsystem:console
#编译参数
ML_FLAG = /c /coff
#链接命令,第一行表示EXE依赖于OBJS
$(EXE):$(OBJS)
Link $(LINK_FLAG) $(OBJS) /out:$(EXE)
#编译命令
.asm.obj:
ml $(ML_FLAG) $<
#清理命令
clean:
del *.obj
del *.exe
目前还没有遇到包含资源文件的,遇到后再来补充。
nmake使用
#编译,默认使用同级目录下的`Makefile`文件
nmake
#指定makefile进行编译
nmake /f xxx
#输出编译信息
nmake /x xxx.txt
#不检测文件时间,强制更新所有文件
nmake /A
#文件时间相等时也更新文件
nmake /B
#make时显示文件新旧信息
nmake /D
#make时显示执行命令但并不真正执行
nmake /N
#make时显示详细信息
nmake /P