Windows Makefile 使用

本文详细介绍了在Windows环境下如何使用NMAKE工具配合MAKEFILE进行程序构建。讲解了NMAKE的语法,包括宏定义、预处理指令以及描述块结构。还详细阐述了MAKEFILE中的宏、预处理指令和命令,以及编译器cl.exe和链接器link.exe的常见选项。通过实例展示了如何编译资源文件、编译源代码以及链接生成可执行文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

VS 环境下使用MAKEFILE的工具为NMAKE

注:通常在VS安装目录/VC/BIN 里面,如果在控制台输入此命令无效,可以此路径添加到环境变量PATH里


NMAKE 使用MAKEFILE的语法为

Nmake /f makefile /x stderrfile [macrodefs][targets]

注:makefile 为makefile文件,/xstderrfile为可选参数,即把namke错误存储到文件stderrfile


MAKEFILE 语法

MAKEFILE 的宏与C语言的宏类似

macro name=  macro value

例如 OUTDIR= .\Debug

 

预处理指令

Makefile的预处理指令和C语言的预处理指令类似

常用指令

!ERRORstring      ——    显示错误“string”, 然后停止执行,错误代码为U1050

!MESSAGEstring  ——   显示字符串,这个一般用于信息显示C语言的#pragmamessage

!INCLUDE[<]filename[>] —— 包含makefile

!IFconst ——  如果成立(非零),则处理!F和下一个!ELSE!ENDIF之间的语句

 

还有诸如!IFDEF  macroname

!IFNDEF macroname、!ELSE、!ELSEIF、!ELSEIFDEF、!ELSEIFNDEF、!ENDIF和C

语言的#if之类的指令的意义是一致的,这里就不一一详述了

 

 描述块结构

目标:依赖项

         命令

 

目标就是用户最终希望得到的结果,也就是nmake需要生成的结果。目标可以是一个文件、目录,也可以什么都不是。如果目标不存在或者目标的时间戳(文件的最后修改时间)比依赖项早,或者目标类型不是文件,nmake将运行描述块中的命令


依赖项是指在生成目标所需要使用到的对象。一个目标可以有一个或多个依赖项,也可以没有依赖项。多个依赖项以空格分隔。如果指定的依赖项不存在,则在其他描述块的目标中寻找,但首先需要生成这个目标


命令是nmake在生成目标时所调用的命令


在使用namke进行程序构建时,nmake采用了时间戳判断机制。在生成一个目标时,会判断目标文件是否存在或目标的最后修改时间是否晚于所有依赖项的最后修改时间。如果所有依赖项的最后修改时间都比目标的最后修改时间晚,则说明当前的目标文件是使用现有的依赖项生成,是最新的,没有必要再进行生成

 

MAKEFILE 文件结构:

#宏定义

….

#描述块

makefile的一个基本原则:以终为始,这个似乎和我们平时进行的过程式编程的原则相悖。所谓以终为始,就是你通过makefile文件首先告诉编译器这个工程是想生成一个exe还是一个dll还是一个静态库。然后告诉编译器要生成这个exe之类需要生成哪些obj文件
</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值