为了账号安全,请及时绑定邮箱和手机立即绑定

如果 `go.mod` 中的版本低于实际版本,`go build` 是否会失败?

如果 `go.mod` 中的版本低于实际版本,`go build` 是否会失败?

Go
烙印99 2022-06-27 09:28:29
我已经在文件中go 1.15指定了。go.mod当前的编译器版本如下:➜ go version go version go1.14.4 linux/amd64然而,go build仍然成功地构建了一个二进制文件。这是预期的行为吗?不确定我可以在模块描述中找到解释。
查看完整描述

1 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

是的,这是预期的行为。


go.mod 更像是一个依赖关系和包管理的工具,而不是一个管理构建过程输出的工具。这就是为什么,如果您不使用 1.15 中的任何功能,它仍然应该能够被构建。


有趣的是,如果您尝试将项目设置为比您正在使用的版本更高的版本(即使用 go tool 1.14 构建的 1.15),并且您在您的项目中标记go.mod它需要使用更高版本,它'将出现在构建过程中:


# temp/test-go-build

./main.go:10:15: o.Redacted undefined (type url.URL has no field or method Redacted)

note: module requires Go 1.15

所以 go 工具会尽力满足您的需求,但不会阻止您到达您想去的地方(明白了吗?)。


查看完整回答
反对 回复 2022-06-27
  • 1 回答
  • 0 关注
  • 208 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信