0


windows下使用make命令(makefile)

今天讲一讲windows下如何使用make命令

在学kratos时发现有个很好用的命令,即make,比如:

make api

但是你会发现这东西默认只能在linux和Mac上能用,作为windows用户就很难受了,那么要怎么在windows使用make命令呢?,你要是不难受就敲完整命令吧,比如($(API_PROTO_FILES)即你的proto文件路径):

protoc --proto_path=./api \
    --proto_path=./third_party \
    --go_out=paths=source_relative:./api \
    --go-http_out=paths=source_relative:./api \
    --go-grpc_out=paths=source_relative:./api \
    --openapi_out=fq_schema_naming=true,default_response=false:. \
    $(API_PROTO_FILES)

反正我是受不了,为啥别人Mac能用,我不能用,就因为我买不起Mac吗,我不服。

解决方案:

1、首先下载MinGw(干什么用的自行百度):Download MinGW - Minimalist GNU for Windows from SourceForge.net

2、点击安装后打开将Base Setup全部mark,然后点击installation->Apply Changes,等待安装完就行(时间可能有点长)。

3、然后将bin目录添加进环境变量,比如我的路径是C:\MinGW\bin,该目录下有一个mingw-get.exe,这就是我上面说的命令可执行文件了。

4、作为有强迫症的我肯定不愿意执行mingw-get这样的命令,我是想用make这样的命令,所以复制一份mingw-get.exe,将其改为make.exe,到此为止就大功告成了。

5、但是有时候你在kratos里执行make api时会发现要报错,他会提示C:\不是内部或外部命令,也不是可运行的程序,这里是因为你的git安装到的是默认目录,即C:\Program Files\Git,因为实际上kratos里的makefile文件里用到了Git_Bash,而这个路径正好是你的git-bash.exe的路径,可能是C:\Program Files\Git这个路径Program Files中空格无法解析的原因(我猜的),我的方法就是将Git重新安装,然后自定义目录,如C:\install\Git,这样就完美解决了。

GOHOSTOS:=$(shell go env GOHOSTOS)
GOPATH:=$(shell go env GOPATH)
VERSION=$(shell git describe --tags --always)
​
ifeq ($(GOHOSTOS), windows)
    #the `find.exe` is different from `find` in bash/shell.
    #to see https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/find.
    #changed to use git-bash.exe to run find cli or other cli friendly, caused of every developer has a Git.
    Git_Bash= $(subst cmd\,bin\bash.exe,$(dir $(shell where git)))
    INTERNAL_PROTO_FILES=$(shell $(Git_Bash) -c "find internal -name *.proto")
    API_PROTO_FILES=$(shell $(Git_Bash) -c "find api -name *.proto")
else
    INTERNAL_PROTO_FILES=$(shell find internal -name *.proto)
    API_PROTO_FILES=$(shell find api -name *.proto)
endif
标签: git golang

本文转载自: https://blog.csdn.net/qq_34432348/article/details/126576336
版权归原作者 梦林苑 所有, 如有侵权,请联系我们删除。

“windows下使用make命令(makefile)”的评论:

还没有评论