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

如何在 Golang 中设置 GODEBUG 环境变量,以便可以将 godebug

如何在 Golang 中设置 GODEBUG 环境变量,以便可以将 godebug

Go
HUX布斯 2022-03-03 15:06:54
我想使用Godebug逐步完成我的程序。但是,因为我使用的是 net/http,所以会出现以下错误:/home/heath/go/src/net/http/h2_bundle.go:45:2: could not import golang_org/x/net/http2/hpack (cannot find package "golang_org/x/net/http2/hpack" in any of:    /home/heath/go/src/golang_org/x/net/http2/hpack (from $GOROOT)/x/net/http2/hpack 确实存在于我的 GOPATH 但在 ~heath/go/src/golang.org ...不是 golang_org (不确定那里发生了什么)我读过这个错误是因为 godebug 还不支持 http2(找不到源)。我试图通过在 init() 和命令行中设置 GODEBUG env 来禁用 http2server 和 http2client。我还确认这些设置是通过执行 fmt.Println("GODEBUG", os.Getenv("GODEBUG") 来设置的。按照位于此处的说明GODEBUG=http2client=0  # disable HTTP/2 client supportGODEBUG=http2server=0  # disable HTTP/2 server support我复制错误的简单代码示例是:  package main  import "fmt"  import "net/http"  import "os"  func init() {      os.Setenv("GODEBUG", "http2server=0,http2client=0")  }  func main() {      fmt.Println("GODEBUG", os.Getenv("GODEBUG"))      _ = "breakpoint"      fmt.Println("Hello, World!")      http.ListenAndServe(":8080", nil)  }godebug run example.go我正在运行 Go 版本:去版本 go1.7 linux/amd64
查看完整描述

1 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

这可能不是正确的做事方式。但是我将 http2 包从我的 $GOROOT/src/vendor 下的供应商目录复制到了我的 $GOPATH/src 下的 src 目录。

如果有人对引用供应商目录的正确方法有任何进一步的意见,请添加您的想法。只是把我的解决方法放在这里,以防其他人遇到同样的问题。

编辑:实际上一种“更好”的做事方式是对 ../src/github_org 执行 ln -s ..src/vender/github_org


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

添加回答

举报

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