您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

golang:核心net / http包导入错误

golang:核心net / http包导入错误

这里的问题是您正在运行go testgo命令是您的1.8.1安装。为了使测试正常工作,您应该使用从开发目录构建的Go工具链运行。

建议您在个人资料中添加一个别名,例如alias godev=~/godev/bin/go,然后即可运行godev test

还要确保您未设置GOROOT环境变量,因为这将导致go命令使用指定的路径作为GOROOT,而不管您使用的是哪个工具链(不是您想要的工具链)。

根据评论中的要求,以下是我可以提供的简短说明:

提到“找不到包”的错误是在寻找供应商提供的某些包~/godev/src/vendor/golang_net/...。但是,仅在软件包位于GOPATH或GOROOT内时,才在1.5 / 1.6中添加供应商支持。您的godev安装不在(也不应该在)GOPATH中,并且GOROOT指向1.8.1安装。

transfer.go:14:2: use of internal package not allowed是因为transfer.go进口net/http/internal。由于这不是相对路径,因此可以在中找到$GOROOT/src/net/http/internal,而~/godev/src/net/http/internal如果导入包与内部目录不共享公共根目录,则不能导入内部包。

归结为指向1.8.1安装的GOROOT。您可能想知道是否可以仅将GOROOT设置为指向您的godev目录,但这也无法正常工作。我不太确定这里的机制,但是我认为问题归结为1.8.1编译器期望的是in中的不匹配~/godev/src/runtime

编译工具链时,将编译GOROOT的位置,因此在~/godev/bin/go运行时,它将~/godev用作GOROOT。

dotnet 2022/1/1 18:16:37 有394人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶