windows怎么执行makefile

老刘

Windows 怎么执行 Makefile?最全实操教程,新手也能看懂

关键词:Windows 执行 Makefile、makefile、Windows 下运行 make、Windows 编译项目

很多人第一次接触 Makefile,通常是在 Linux、MAC 里,直接敲一条 make 就能编译项目。到了 Windows 上,却发现命令不认、环境不对、路径报错,整个人都懵了。

其实,Windows 不是不能执行 Makefile,而是需要先装一个“make 工具”,再配好编译环境。下面我按“问题分析 → 解决方案 → 注意事项”的思路,带你一步一步弄明白。


一、问题分析:为什么 Windows 不能直接执行 Makefile?

1. Makefile 本身不是“程序”

Makefile 只是一个构建脚本,它要依赖一个叫 make 的工具来执行。

在 Linux 里,这个工具通常默认就有,比如:

make

但 Windows 原生环境里,没有自带 GNU Make,所以你直接双击 Makefile,或者在命令行里输入 make,大概率会提示:

  • make 不是内部或外部命令
  • 'make' 不是可识别的命令
  • 或者编译器找不到

2. Makefile 通常是 Linux 风格

很多 Makefile 默认写法是给 Linux / Unix 环境准备的,常见问题有:

  • 路径分隔符不同
    • Linux 用 /
    • Windows 常见是 \
  • 命令不同
    • Linux 里常用 rm
    • Windows 里可能没有这个命令
  • 编译器不同
    • Linux 常配 gcc/g++
    • Windows 可能用 MinGWMSVCclang

所以,能不能执行 Makefile,不只看有没有 make,还要看你的编译环境是否匹配


二、解决方案:Windows 执行 Makefile 的几种方法

下面给你按“最容易上手”到“专业方案”排序。


方案一:安装 MSYS2 + make + gcc(最推荐,免费,兼容性好)

这是 Windows 上跑 Makefile 最常见、最实用的方式,尤其适合:

  • C/C++ 项目
  • 开源项目
  • 需要 makegccg++ 的场景

步骤 1:安装 MSYS2

去 MSYS2 官网下载安装包,安装到默认路径即可,建议路径不要有中文和空格。

安装后打开 MSYS2 UCRT64MSYS2 MinGW64 终端。


步骤 2:更新系统组件

在 MSYS2 终端里执行:

pacman -Syu

如果提示关闭窗口重开,就按提示操作,然后再执行一次:

pacman -Syu

步骤 3:安装 make 和编译器

如果你是 C/C++ 项目,执行:

pacman -S make gcc

如果是 C++,再确认有 g++,通常安装 gcc 就已经包含了。

如果你想更完整一点,可以装这些:

pacman -S make git mingw-w64-x86_64-toolchain

步骤 4:进入项目目录

假设你的项目在 D:\project,在 MSYS2 里路径写法是:

cd /d/project

注意,Windows 盘符路径在 MSYS2 里要写成 /d/项目路径


步骤 5:执行 Makefile

在项目目录下直接运行:

make

如果 Makefile 里定义了目标,比如:

make clean
make all
make install

就按项目要求执行即可。


方案二:安装 MinGW-w64 + GNU Make(适合只想在命令行里用)

如果你不想装完整的 MSYS2,也可以单独装 MinGW-w64 工具链。

适合人群

  • 只想编译 C/C++ 项目
  • 想让 Windows 命令行里也能直接用 make
  • 对环境要求不高

步骤

  1. 安装 MinGW-w64
  2. 下载 GNU Make
  3. bin 目录加入系统环境变量 Path

然后打开 cmdPowerShell,输入:

make --version
gcc --version

如果能正常显示版本号,就说明环境配置成功了。


常见问题

很多人装完后还是提示找不到命令,原因通常是:

  • 环境变量没配对
  • make.exe 没放在 PATH 里
  • 装的是不带 make 的 MinGW 包
  • 终端没重启

方案三:使用 WSL,在 Windows 里跑 Linux 环境(兼容性最好)

如果你的 Makefile 是典型 Linux 项目,Windows 下怎么都跑不顺,直接用 WSL 会省很多事

WSL 是什么

WSL 就是 Windows 子系统 Linux,它能让你在 Windows 里运行 Ubuntu、Debian 等 Linux 环境。

适合人群

  • 项目原本就是 Linux 服务器项目
  • 有复杂 shell 脚本
  • Makefile 里用了很多 Linux 命令
  • 想要最接近原生 Linux 的体验

简单步骤

  1. 在 PowerShell 以管理员身份运行:
wsl --install
  1. 安装完成后,打开 Ubuntu
  2. 安装 make:
sudo apt update
sudo apt install make build-essential
  1. 进入 Windows 盘挂载目录,例如:
cd /mnt/d/project
  1. 执行:
make

优点

  • 兼容性强
  • Linux 命令基本都能用
  • 对复杂项目最友好

缺点

  • 对纯小白来说,比 MSYS2 稍微绕一点
  • 需要多理解一个 Linux 环境

方案四:使用 Visual Studio 的 nmake(适合 MSVC 工程)

如果你的项目不是 GNU Make,而是偏微软生态,也可能用的是:

nmake

这不是 make,而是 Microsoft 的 make 工具

适合场景

  • Visual Studio 项目
  • 使用 MSVC 编译器
  • 依赖 .vcxproj 或微软风格脚本

注意

nmake 和常见的 GNU Makefile 语法并不完全一样,很多 Linux 项目的 Makefile 不能直接给 nmake 用。


三、Windows 下执行 Makefile 的标准操作流程

如果你是新手,建议直接按这个流程来:

方法一:MSYS2 终端执行

  1. 安装 MSYS2
  2. 安装 makegcc
  3. 打开 MSYS2 终端
  4. 进入项目目录
  5. 输入:
make

方法二:PowerShell / CMD 执行

前提是你已经把 make.exe 加入环境变量。

然后在项目目录里执行:

make

如果项目有指定目标:

make clean
make all
make test

四、常见报错与解决办法


1. 提示“make 不是内部或外部命令”

原因

系统里没有安装 make,或者没有加入 PATH。

解决办法

  • 确认安装了 make
  • 执行:
make --version
  • 如果报错,检查环境变量
  • 或直接改用 MSYS2 / WSL 终端

2. 提示“gcc 不是内部或外部命令”

原因

编译器没装,或 PATH 没配好。

解决办法

安装编译器工具链,比如:

pacman -S gcc

或者安装完整工具包:

pacman -S mingw-w64-x86_64-toolchain

3. Makefile 里有 rmcpmv 报错

原因

这些是 Linux 命令,Windows 原生 CMD 不支持。

解决办法

  • 用 MSYS2 / WSL 执行
  • 或者修改 Makefile,把命令改成 Windows 兼容写法

4. 路径写法错误

原因

Windows 和 Linux 路径格式不同。

解决办法

例如:

  • Windows:D:\project\test
  • MSYS2:/d/project/test
  • WSL:/mnt/d/project/test

5. 编译出来是 .exe,但运行报缺 DLL

原因

MinGW 环境下生成的程序,可能依赖运行时 DLL。

解决办法

  • 把对应 DLL 放到 exe 同目录
  • 或者静态链接
  • 或者安装对应运行库

五、如果你的 Makefile 是自己写的,怎么提高 Windows 兼容性?

如果你希望这个 Makefile 在 Windows 上也能顺利执行,建议注意这几点:

1. 少用 Linux 专属命令

比如:

rm -rf build

可以考虑兼容处理,或者在 Windows 下使用 delrmdir


2. 尽量使用变量

例如:

CC = gcc
CFLAGS = -Wall -O2

这样更方便不同环境切换。


3. 路径统一处理

尽量避免在 Makefile 里硬编码死路径。


4. 复杂项目优先考虑 CMake

如果项目本身跨平台要求高,很多时候 CMake 比纯手写 Makefile 更适合 Windows
CMake 可以生成:

  • Makefile
  • Visual Studio 工程
  • Ninja 构建文件

这样兼容性会更强。


六、最适合小白的推荐方案

如果你是电脑小白,不知道该装哪个,直接按这个来:

最稳妥方案

安装 MSYS2,然后在 MSYS2 终端里执行 make

原因很简单:

  • 免费
  • 好装
  • 配套完整
  • 出问题更容易查
  • 对大多数 Makefile 兼容性较好

七、快速总结:Windows 执行 Makefile 怎么做?

最简单的结论

Windows 不能原生直接执行 Makefile,必须先装构建工具。

常用方案排行

  1. MSYS2 + make + gcc:最推荐,适合大多数人
  2. WSL + make:兼容性最好,适合 Linux 项目
  3. MinGW + make:轻量,但配置稍麻烦
  4. nmake:微软生态项目专用

一句命令思路

装好环境后,在项目目录执行:

make

如果是指定目标:

make clean
make all

八、实战建议:第一次执行 Makefile 之前先检查这 3 件事

1. 先确认项目目录里有 Makefile

看一下是否真的存在这些文件之一:

  • Makefile
  • makefile
  • GNUmakefile

2. 先看 Makefile 用的是哪种工具

打开文件看看,是否明显依赖:

  • gcc
  • g++
  • rm
  • cp
  • sh

如果有这些,基本说明它更偏向 Linux 环境。

3. 先确认你要用什么终端

  • 想省事:用 MSYS2
  • 想兼容 Linux:用 WSL
  • 想走微软生态:用 Visual Studio / nmake

结尾总结

Windows 执行 Makefile 的核心,不是“点开文件就能跑”,而是要先准备好对应的 make 工具和编译环境
对于绝大多数用户来说,MSYS2 是最实用的入门方案;如果项目比较 Linux 化,WSL 更稳;如果是 Visual Studio 工程,则考虑 nmake

只要环境搭对了,Windows 上照样可以很顺利地执行 Makefile、编译项目、清理文件、生成可执行程序。

文章版权声明:文章内容均来源于各大短视频平台搜集以及修改和删减新增,如有侵权或者违规,请联系站长进行删除,如需转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
验证码
评论列表 (暂无评论,2人围观)

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

目录[+]