首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CI/CD构建失败与go -ldflags

问CI/CD构建失败与go -ldflags
EN

Stack Overflow用户
提问于 2019-05-03 07:16:41
回答 1查看 786关注 0票数 1

码头形象:golang:1.12.1。

本地Go版本:go1.10.4Linux/amd64 64。

在我的bash脚本中有这样的命令:

代码语言:javascript
复制
GOOS=linux GOARCH=amd64 go build -ldflags '-s -w -X main.Version=$(git describe --tags)' -o ./path/to/binary ./main.go &&

现在CI/CD在这个命令上失败了,但是一个月前,所有的东西都可以使用相同的Docker映像。

-ldflags是不推荐的还是什么?

控制台输出:

代码语言:javascript
复制
# command-line-arguments
usage: link [options] main.o
  ... //skipped
  -extldflags flags
        pass flags to external linker
  ... //skipped
  -s    disable symbol table
  ... //skipped
  -w    disable DWARF generation

-ldflags一点也不存在。

我现在应该使用-extldflags吗?

我试过了

代码语言:javascript
复制
GOOS=linux GOARCH=amd64 go build -o ./path/to/binary -ldflags '-s -w -X main.Version=$(git describe --tags)' ./main.go &&

也帮不上忙。

编辑1

代码语言:javascript
复制
GOOS=linux GOARCH=amd64 go build -ldflags '-s -w' -o ./path/to/binary ./main.go &&

已经成功了,但我还是需要那个参数。甚至

代码语言:javascript
复制
GOOS=linux GOARCH=amd64 go build -ldflags '-s -w -X main.Version=123456' -o ./path/to/binary ./main.go &&

很管用。

进一步调查git输出。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-03 14:00:22

问题是关于ldflags的单引号

代码语言:javascript
复制
GOOS=linux GOARCH=amd64 go build -ldflags '-s -w -X main.Version=$(git describe --tags)' -o ./path/to/binary ./main.go &&
                                          ^                                            ^
                                          |                                            |

我去了双引号,它起了作用:

代码语言:javascript
复制
GOOS=linux GOARCH=amd64 go build -ldflags "-s -w -X main.Version=$(git describe --tags)" -o ./path/to/binary ./main.go &&
                                          ^                                            ^
                                          |                                            |
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55964947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档