Windows下Go项目执行make命令提示make (e=2)系统找不到指定文件如何解决
问题根因
你遇到的报错本质是Windows原生环境没有内置sh解释器,make执行时尝试调用sh运行脚本但找不到对应程序,和脚本内容、docker-compose路径没有关系,这也是你换测试脚本后依然报相同错误的原因。
可选择的解决方案
方案1(最推荐):使用WSL2环境运行
Windows下开发Go、容器相关项目优先用WSL2环境,完全规避跨平台兼容问题:- 开启Windows的WSL2功能,安装Ubuntu等主流Linux发行版
- 在WSL2环境内安装make、Go、Docker等工具链
- 将项目放在WSL2的文件系统中执行
make infra up即可正常运行
方案2:给Windows安装sh运行环境
不想用WSL的话可以安装带sh的兼容层:- 安装Git Bash、Cygwin或MinGW任意一种工具,推荐Git Bash(安装Git时默认附带)
- 将sh.exe所在目录加入系统环境变量
PATH:Git Bash的sh.exe默认路径为C:\Program Files\Git\bin - 重启终端使环境变量生效后重新执行make命令
方案3:修改Makefile指定shell路径
不想改环境变量的话可以直接在Makefile开头显式指定shell路径:# 替换为你本地sh.exe的实际路径,注意用正斜杠或者双反斜杠 SHELL := C:/Program Files/Git/bin/sh.exe
内容的提问来源于stack exchange,提问作者Farshad
相关产品推荐
相关产品推荐

