谁帮忙解释下MASM32下,ML和LINK参数的意思啊?
ML [ /options ] filelist [ /link linkoptions ]
/AT Enable tiny model (.COM file) /nologo Suppress copyright message
/Bl <linker> Use alternate linker /Sa Maximize source listing
/c Assemble without linking /Sc Generate timings in listing
/Cp Preserve case of user identifiers /Sf Generate first pass listing
/Cu Map all identifiers to upper case /Sl <width> Set line width
/Cx Preserve case in publics, externs /Sn Suppress symbol-table listing
/coff generate COFF format object file /Sp <length> Set page length
/D <name> [=text] Define text macro /Ss <string> Set subtitle
/EP Output preprocessed listing to stdout /St <string> Set title
/F <hex> Set stack size (bytes) /Sx List false conditionals
/Fe <file> Name executable /Ta <file> Assemble non-.ASM file
/Fl[file] Generate listing /w Same as /W0 /WX
/Fm[file] Generate map /WX Treat warnings as errors
/Fo <file> Name object file /W <number> Set warning level
/FPi Generate 80x87 emulator encoding /X Ignore INCLUDE environment path
/Fr[file] Generate limited browser info /Zd Add line number debug info
/FR[file] Generate full browser info /Zf Make all symbols public
/G <c|d|z> Use Pascal, C, or Stdcall calls /Zi Add symbolic debug info
/H <number> Set max external name length /Zm Enable MASM 5.10 compatibility
/I <name> Add include path /Zp[n] Set structure alignment
/link <linker options and libraries> /Zs Perform syntax check only
usage: LINK [options] [files] [@commandfile]
options:
/ALIGN:#
/BASE:{address|@filename,key}
/COMMENT:comment
/DEBUG
/DEBUGTYPE:{CV|COFF}
/DEF:filename
/DEFAULTLIB:library
/DLL
/DRIVER[:{UPONLY|WDM}]
/ENTRY:symbol
/EXETYPE:DYNAMIC
/EXPORT:symbol
/FIXED[:NO]
/FORCE[:{MULTIPLE|UNRESOLVED}]
/GPSIZE:#
/HEAP:reserve[,commit]
/IMPLIB:filename
/INCLUDE:symbol
/INCREMENTAL:{YES|NO}
/LARGEADDRESSAWARE[:NO]
/LIBPATH:dir
/MACHINE:{ALPHA|ARM|IX86|MIPS|MIPS16|MIPSR41XX|PPC|SH3|SH4}
/MAP[:filename]
/MAPINFO:{EXPORTS|FIXUPS|LINES}
/MERGE:from=to
/NODEFAULTLIB[:library]
/NOENTRY
/NOLOGO
/OPT:{ICF[,iterations]|NOICF|NOREF|NOWIN98|REF|WIN98}
/ORDER:@filename
/OUT:filename
/PDB:{filename|NONE}
/PDBTYPE:{CON[SOLIDATE]|SEPT[YPES]}
/PROFILE
/RELEASE
/SECTION:name,[E][R][W][S][D][K][L][P][X]
/STACK:reserve[,commit]
/STUB:filename
/SUBSYSTEM:{NATIVE|WINDOWS|CONSOLE|WINDOWSCE|POSIX}[,#[.##]]
/SWAPRUN:{CD|NET}
/VERBOSE[:LIB]
/VERSION:#[.#]
/VXD
/WARN[:warninglevel]
/WINDOWSCE:{CONVERT|EMULATION}
/WS:AGGRESSIVE
[解决办法]
这么多参数哪能都用得上啊
Ml参数
感觉最常用得就是/c 仅自动编译,不链接
/coff 必用的,产生obj的文件为coff格式(写win32程序的时候)
/Cp 基本上必用,源代码区分大小写
/Gz函数调用类型为stdcall形式,常用的
/Zi调试的时候用,一般不用
LINK的参数N多,不过绝大部分默认都可以了,/subsystem选项是必须的
/subsystem:windows 普通pe文件
/subsystem:console 控制台文件
[解决办法]
这么多参数哪能都用得上啊
Ml参数
感觉最常用得就是/c 仅自动编译,不链接
/coff 必用的,产生obj的文件为coff格式(写win32程序的时候)
/Cp 基本上必用,源代码区分大小写
/Gz函数调用类型为stdcall形式,常用的
/Zi调试的时候用,一般不用
LINK的参数N多,不过绝大部分默认都可以了,/subsystem选项是必须的
/subsystem:windows 普通pe文件
/subsystem:console 控制台文件
推荐看一看罗云彬先生的《Windows环境下32位汇编程序设计》,里面有好多最基本的东西的,合适初学者与有一定基础的,但在这之前你必须有DOS汇编的基础