gpt4 book ai didi

go - 不能将 ldflags 与 bee pack 命令一起使用

转载 作者:IT王子 更新时间:2023-10-29 02:18:47 25 4
gpt4 key购买 nike

我正在尝试使用 ldflags 选项编译 beego:

bee pack -v -ba="-ldflags '-s -w'" 

然后去提示它:

go build -o /var/folders/XXX/XXX/T/beePack-4329015000/XXXX -ldflags='-s -w'
invalid value "'-s" for flag -ldflags: missing =<value> in <pattern>=<value>

我在 go1.12.6 上使用最新的 beego。看起来 beego 正在用 space 分隔命令行并添加了一些检查。

有什么想法吗?

编辑

使用 -ldflags='-s -w'

GOOS=linux bee pack -v -exr=vendor -ba="-ldflags='-s -w'"

我得到了:

+ go build -o /var/folders/xxx/xxx/T/beePack-2277518000/xxx -ldflags='-s -w'
invalid value "'-s" for flag -ldflags: missing =<value> in <pattern>=<value>

最佳答案

我查看了蜜蜂工具的源代码。这应该是一个错误,我会在他们的 GitHub 存储库中提出一个问题。

这里是相关code的链接.请查看下面的评论。

    args := []string{"build", "-o", binPath}
if len(buildArgs) > 0 {
//Giulio: Here they split the input arguments using whitespace as delimiter.
//In your case it would become: "-ldflags='-s -w'" => ["-ldflags='-s", "-w'"]
args = append(args, strings.Fields(buildArgs)...)
}

if verbose {
//Giulio: The print is fine, reconstruct the same string with strings.Join
fmt.Fprintf(output, "\t%s%s+ go %s%s%s\n", "\x1b[32m", "\x1b[1m", strings.Join(args, " "), "\x1b[21m", "\x1b[0m")
}
//Giulio: but, here, they use the slice with splitted flags, i.e. ["-ldflags='-s", "-w'"], which is the real problem.
execmd := exec.Command("go", args...)

关于go - 不能将 ldflags 与 bee pack 命令一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56868675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com