Windows 7 怎么使用 nmake?小白从零学会编译项目
很多老电脑还在跑 Windows 7,遇到需要编译 C/C++ 源码或调用 Makefile 的项目时,nmake 就成了绕不过去的工具。nmake 是微软自家的 make 工具,专门用来读取 Makefile 并自动编译、链接程序。它不像 Linux 的 make 那么普及,但在 Windows 环境下配合 Visual Studio 或 Windows SDK 用起来特别顺手。下面从安装到实际使用,一步一步讲清楚,哪怕你是电脑小白也能跟着做。
一、先搞清楚 nmake 是什么,Win7 上能不能用
nmake 全称 Microsoft Program Maintenance Utility,作用就是根据 Makefile 里的规则,自动完成编译、链接、清理等操作。你写好 Makefile 后,敲一条命令就能把一堆 .c 或 .cpp 文件变成可执行文件,不用手动一个个敲 cl 编译器命令。
Windows 7 完全支持 nmake。它通常跟着 Visual Studio 或 Windows SDK 一起安装,不需要单独下载一个“nmake 安装包”。只要系统是 32 位或 64 位 Win7,装好对应工具链就能用。注意:Win7 已经停止官方支持,建议用 VS2010 到 VS2015 这些兼容性较好的版本,新版本 VS 在 Win7 上可能装不上或跑不稳。
二、安装 nmake:三种靠谱方法,选最简单的
方法 1:安装 Visual Studio(最推荐,功能最全)
- 去微软官网或可靠镜像站下载 Visual Studio 2010/2012/2013 Express 或 Professional 版。Express 免费,够用。
- 运行安装程序,勾选“Visual C++”相关组件。安装过程中会自动带上 nmake.exe 和 cl.exe 编译器。
- 安装完成后,打开“开始菜单 → 所有程序 → Microsoft Visual Studio 20xx → Visual Studio Tools”,找到“Visual Studio 命令提示”或“Developer Command Prompt”。
- 点开这个命令提示窗口,直接输入
nmake /?,如果弹出帮助信息,说明已经装好了。
方法 2:只装 Windows SDK(体积小,适合只想用编译工具的人)
- 下载 Windows SDK 7.1 或 8.0(对应 Win7 最稳)。
- 安装时只勾选“Windows Headers and Libraries”和“Visual C++ Compilers”就行,不用装全部。
- 安装后,nmake 一般在
C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin或类似路径下。 - 把这个 Bin 目录加到系统环境变量 PATH 里:右键“计算机 → 属性 → 高级系统设置 → 环境变量”,在“系统变量”找到 Path,编辑后追加路径(用分号隔开)。
- 重新打开 cmd,输入
nmake /?验证。
方法 3:用 Visual C++ Build Tools(更轻量)
微软后来出了独立的 Build Tools,体积比完整 VS 小很多。下载“Visual C++ 2015 Build Tools”或对应版本,安装时勾选 C++ 工具即可。装完后同样把 nmake 所在目录(通常在 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin)加入 PATH。
装完后记得重启电脑,或者至少关掉所有 cmd 窗口重新打开,环境变量才会生效。
三、配置环境,让 nmake 随时能用
如果直接开普通 cmd 输入 nmake 提示“不是内部或外部命令”,说明 PATH 没配好,或者你没用 VS 自带的开发者命令提示。
最省事的做法:
- 永远用“Developer Command Prompt for VS”启动。它已经自动设置好了所有路径、包含目录和库目录。
- 想在普通 cmd 里用,就手动设置。以 VS2010 为例,可以新建一个 bat 文件,内容写成:
@echo off call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86 cmd保存后双击运行,就进入了配置好的环境。64 位系统把 x86 改成 amd64 即可。
验证是否成功:在命令行输入
nmake /?
cl
两个命令都能正常显示版本或帮助信息,就说明环境 OK。
四、实际使用 nmake:从最简单的例子开始
假设你有一个简单的 C 程序,目录结构是这样的:
D:\test\
├── hello.c
└── Makefile
hello.c 内容:
#include <stdio.h>
int main() {
printf("Hello, nmake on Windows 7!\n");
return 0;
}
Makefile 内容(注意用 tab 缩进,不能用空格):
hello.exe: hello.c
cl hello.c /Fehello.exe
操作步骤:
- 打开 Developer Command Prompt。
- 用
cd /d D:\test进入项目目录。 - 直接输入
nmake,回车。 - 看到编译输出后,当前目录就会生成 hello.exe。
- 再输入
hello.exe就能运行,屏幕打印出那句 Hello。
常用命令一览:
nmake:默认读取当前目录的 Makefile 或 makefile,执行默认目标。nmake /f 我的文件名:指定其他名字的 Makefile。nmake clean:如果 Makefile 里写了 clean 目标,可以清理中间文件。nmake /nologo:去掉微软版权提示,输出更干净。nmake /A:强制重新编译所有文件,忽略时间戳。nmake /S:安静模式,少输出信息。
更复杂的 Makefile 示例(多文件项目):
CC = cl
CFLAGS = /W3 /O2
OBJS = main.obj utils.obj
TARGET = myapp.exe
$(TARGET): $(OBJS)
$(CC) $(OBJS) /Fe$(TARGET)
main.obj: main.c
$(CC) $(CFLAGS) /c main.c
utils.obj: utils.c
$(CC) $(CFLAGS) /c utils.c
clean:
del *.obj *.exe
写好后同样 nmake 就能编译,nmake clean 就能清理。
五、常见问题排查,少走弯路
-
提示“nmake 不是内部或外部命令”
没进开发者命令提示,或者 PATH 没加。重新打开 VS 自带的命令窗口,或者检查环境变量。 -
编译时报“找不到 cl.exe”或“无法打开包含文件”
说明编译器环境没设置完整。务必用 vcvarsall.bat 初始化,或者在 VS 命令提示里操作。不要直接用普通 cmd。 -
Makefile 报错“SYNtax error”或“missing separator”
99% 是缩进用了空格而不是 Tab。用记事本打开 Makefile,把命令行前面的空格全删掉,重新按一下 Tab 键。 -
中文路径或文件名乱码
Win7 默认代码页是 GBK,Makefile 里尽量用英文路径和文件名。实在要用中文,把 cmd 代码页改成 936:chcp 936。 -
64 位系统想编译 32 位程序
调用 vcvarsall.bat 时带上 x86 参数;想编译 64 位就用 amd64。 -
想看详细编译过程
加参数nmake /D或nmake /P,能打印出变量和依赖关系,方便调试。
六、进阶小技巧,让效率更高
- 把常用项目做成批处理:写一个 build.bat,里面先 call vcvarsall.bat,再 nmake,双击就能编译。
- 配合记事本或 Notepad++ 编辑 Makefile,记得把“显示空格和制表符”打开,避免缩进错误。
- 如果项目很大,可以在 Makefile 里加
/MP多核编译选项,速度会快不少。 - 定期备份 Makefile,改坏了容易恢复。
- Win7 上长期用的话,建议关掉自动更新,避免系统补丁把旧版 VS 搞崩。
掌握了以上内容,Windows 7 上使用 nmake 就不再是难题。从安装环境、写第一个 Makefile 到处理报错,每一步都按顺序来,基本都能一次成功。以后遇到开源项目自带 Makefile 的情况,直接进开发者命令提示敲 nmake 就行,省去手动编译的麻烦。

还没有评论,来说两句吧...