我在下面编写了 Makefile 来为不同平台构建 Golang 代码。 (我的操作系统是Windows 10并通过命令提示符运行Makefile)
GOCMD = go
GOBUILD = $(GOCMD) build
GOFILES = $(wildcard *.go)
SONG_PATH = ./song-service
SONG_PATH_OUTPOUT = ./song-service/cmd
SONG_BINARY_NAME_LIN = songservice_lin
song-build-lin:
set GOOS=linux
set GOARCH=amd64
$(GOBUILD) -o "$(SONG_PATH_OUTPOUT)/$(SONG_BINARY_NAME_LIN)" -v "$(SONG_PATH)/$(GOFILES)"
当我运行 make Song-build-lin
时,它运行时没有错误,但 GOOS 变量未设置。
但是当我直接在命令提示符下运行 set GOOS=linux
时,它就可以工作了!
最佳答案
终于找到答案了
我使用 VSCode 终端运行 make 命令,我使用的终端类型是命令提示符。如果将终端类型更改为 Git bash,命令将正常工作。
关于windows - Makefile 未设置 GOOS 环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56252368/