第2章 准备编程环境

win32可执行程序的开发过程

image.png

编译器和链接器

MASM编译器

http://www.masm32.com/
下载页面 http://www.masm32.com/download.htm

image.png

Ml.EXE

image.png

LINK

image.png

MASM 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

参考资料

Guess you like

Origin blog.csdn.net/a854596855/article/details/114920093