[masm615环境]:4 make.bat批处理

3364 人浏览 | 时间: 2015-10-18 22:12:45 | 作者: 1024825654

1.符号定义:


set symbol=%1
set put=%2
set resource=%3
symbol:为执行批处理获取的第一个参数,这里定义为符号

put:为执行批处理获取的第二个参数,这里定义为文件名(输入文件名时,不要输入后缀)

resource:为执行批处理获取的第三个参数,这里定义为资源文件(输入资源文件名时,不要输入后缀):可选


2.make里面所定义的符号

if "%symbol%"=="_bit16" (goto :bit16)
if "%symbol%"=="_bit32" (goto :bit32)
if "%symbol%"=="_win32" (goto :win32)
if "%symbol%"=="_dll" (goto :dll) 
_bit16为16位编译环境


_bit32为32控制台编译执行环境

_win32为32位窗口编译环境

_dll为编译库文件


3.自动编译文件

其中%put%:为第二个参数文件名,输入第二个参数时,不要带后缀名


_bit16符号:

怎样运行make

:bit16
ML /c /nologo /Fl /Fr /Zi %put%.asm
if errorlevel 1 goto terminate

LINK /CODEVIEW %put%,,NUL,Irvine16;
if errorlevel 1 goto terminate
goto :exit

执行结果:

_bit16符号运行结果


_bit32符号:


怎样运行make



:bit32
ML /c /coff /Fl /Fr /Fm /Zi %put%.asm
if errorlevel 1 goto terminate

LINK32 /SUBSYSTEM:CONSOLE /MAP %put%.obj
if errorLevel 1 goto terminate
goto :exit

执行结果:

_bit32符号运行结果


_win32符号:

这是第一种情况:如果有带.rc资源文件,和主模块同名,可以使用主模块的文件名就可以了

怎样运行make

这是第二种情况:如果有带.rc或.res资源文件,不和主模块同名的可以使用第三个参数,来输入资源

怎样执行make

:win32
ML /c /coff /Fl /Fr /Fm /Zi %put%.asm
if errorlevel 1 goto terminate

if exist %put%.rc (goto :win)
if exist %resource%.rc (goto :win_rc)
if exist %resource%.res (goto :win_res)

LINK32 /SUBSYSTEM:WINDOWS /MAP %put%.obj 
if errorLevel 1 goto terminate
goto :exit

:win_rc
RC %resource%.rc

:win_res
LINK32 /SUBSYSTEM:WINDOWS /MAP %put%.obj %resource%.res
if errorLevel 1 goto terminate
goto :exit

:win
RC %put%.rc
LINK32 /SUBSYSTEM:WINDOWS /MAP %put%.obj %put%.res
if errorLevel 1 goto terminate
goto :exit