作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我想使用 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") 设置的。按照位于 here
的说明GODEBUG=http2client=0 # disable HTTP/2 client support
GODEBUG=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 版本:
go版本go1.7 linux/amd64
最佳答案
这可能不是正确的做事方式。但是我将 http2 包从 $GOROOT/src/vendor 下的 vendor 目录复制到 $GOPATH/src 下的 src 目录。
如果有人对引用 vendor 目录的正确方法有任何进一步的意见,请添加您的想法。只是将我的解决方法放在这里,以防其他人遇到同样的问题。
编辑:实际上,一个“更好”的做事方式是执行 ln -s ..src/vender/github_org 到 ../src/github_org
关于go - 如何在 Golang 中设置 GODEBUG 环境变量,以便我可以将 godebug 与 net/http 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39112605/
我是一名优秀的程序员,十分优秀!