生成文件命令替换不接受参数



我正在尝试为我的go项目创建一个简单的Makefile

以下命令替换

GO_BUILD     := 'go build -ldflags "-s -w" -a -installsuffix cgo'

.PHONY: backup
build-cli:
@$(GO_BUILD) -o cli ./cli 

似乎造成了以下问题

▶ make build-cli
make: go build -ldflags "-s -w" -a -installsuffix cgo: No such file or directory
make: *** [build-cli] Error 1

替换go build -ldflags "-s -w" -a -installsuffix cgo的语法正确方法是什么?

从变量中删除多余的引号应该可以做到:

GO_BUILD     := go build -ldflags "-s -w" -a -installsuffix cgo

否则,外壳(make生成)将看到以下命令行:

'go build ...' -o cli ./cli 

它正确地将整个字符串go build ...视为argv[0],并尝试将其查找为可执行文件。

最新更新