win32可执行程序的开发过程
image.png编译器和链接器
MASM编译器
http://www.masm32.com/
下载页面 http://www.masm32.com/download.htm
Ml.EXE
image.pngLINK
image.pngMASM SDK
mask sdk安装成功后会创建下面这些目录
image.png
创建资源
Rc.exe
使用VC++的资源脚本
*.rc -> *.res
make工具
nmake工具
nmake可以在VC6.0的安装目录下找到
1.gif
image.png
makefile的语法
编译链接的顺序
image.png
文件的依赖关系
image.png
make文件如下
# nmake工具的描述文件例子
#定义宏 引用宏使用$(...) 相当于变量, 可以在命令行中指定宏 如name ML_FLAG="/c /coff /F1" 区分大小写
EXE=Test.exe
#注意换行 换行时\后面不能加其它字符
OBJS=x.obj \
y.obj
LINK_FLAG= /subsystem:windows
ML_FLAG=/c /coff
#定义依赖关系和执行命令
$(EXE):$(OBJ) $(RES)
Link $(LINK_FLAG) /out:$(EXE) $(OBJ) $(RES)
$(OBJ):Common.inc
y.obj:y.inc
#定义汇编编译和资源 编译的默认规则
#其中$@全路径的目标文件
#$* 除去扩展名的全路径的目标文件
#$? 所有源文件名
#$< 源文件名(只能用在隐含规则中)
.asm .obj:
ml $(ML_FLAG) $<
.rc .res:
rc $<
#清除临时文件
clean:
del *.obj
del *.res
makefile语法规则
显式规则
目标文件: 依赖文件; 命令
或
目标文件: 依赖文件:
(tab)命令
必须将最终需要生成的文件放在第一条规则定义,也可以在nmake命令中指定 如nmake x.res
目标也可以没有依赖文件 如上面的clean nmake会执行clean后面的指令
隐式规则
.源扩展名 .目标扩展名: ; 命令
或
.源扩展名: .目标扩展名:
(tab)命令
6 构建编程环境
设置环境变量
@echo off
set include=c:\masm32\include;C:\Program Files\Microsoft Visual Studio\VC98\Include;C:\Program Files\Microsoft Visual Studio\VC98\MFC\Include
set lib=c:\masm32\lib
set path=c:\masm32\bin;%path%
echo on
网友评论