解决go build 构建问题 go:build comment without // +build comment

记录一个go build 构建的问题

main.go 文件

package main
import (
	"github.com/valyala/fasthttp"
	"go.uber.org/zap"
)
var logger *zap.Logger
func init() {logger, _ = zap.NewProduction()
}
func fastHTTPHandler(ctx *fasthttp.RequestCtx) {logger.Info("hell, go module", zap.ByteString("uri", ctx.RequestURI()))
}
func main() {fasthttp.ListenAndServe(":8081", fastHTTPHandler)
}

脚本功能是监听8081端口访问,打印访问的头信息日志

执行go build 构建 报错

main.go:5:2: //go:build comment without // +build comment

排查了代码应该是没有问题,必应网站查询问题原因,可能是go 的版本 是低于1.17版本 导致出现的问题,go 引入的依赖库包中 1.17版本后 引入了新的构建标记语法导致的兼容问题

查看当前使用的go版本

##的确是低于 1.17 版本
PS D:\coder\gotestprojects\hellomodule> go version
go version go1.16.5 windows/amd64
###安装go1.17.13 版本
PS D:\coder\gotestprojects\hellomodule> go version
go version go1.17.13 windows/amd64
### 重新执行go build 命令执行成功

查询解决问题参考链接

https://github.com/bitfield/script/issues/131

https://it-explain.com/go-golang-build-error-gobuild-comment-without-build-comment/