我想使用Godebug逐步完成我的程序。但是,因為我使用的是 net/http,所以會出現(xiàn)以下錯誤:/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 (不確定那里發(fā)生了什么)我讀過這個錯誤是因為 godebug 還不支持 http2(找不到源)。我試圖通過在 init() 和命令行中設置 GODEBUG env 來禁用 http2server 和 http2client。我還確認這些設置是通過執(zhí)行 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條經(jīng)驗 獲得超12個贊
這可能不是正確的做事方式。但是我將 http2 包從我的 $GOROOT/src/vendor 下的供應商目錄復制到了我的 $GOPATH/src 下的 src 目錄。
如果有人對引用供應商目錄的正確方法有任何進一步的意見,請?zhí)砑幽南敕?。只是把我的解決方法放在這里,以防其他人遇到同樣的問題。
編輯:實際上一種“更好”的做事方式是對 ../src/github_org 執(zhí)行 ln -s ..src/vender/github_org
- 1 回答
- 0 關注
- 393 瀏覽
添加回答
舉報
0/150
提交
取消