Я пишу ниже 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
в командной строке напрямую, это работает!