栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

这里的问题是您正在运行

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

  1. 确保您已经构建了Go工具链
    cd ~/godev/src; ./make.bash
    ./all.bash
    也可以使用,但是您将不得不等待测试运行,而不仅仅是构建工具链)。
  2. 使用新编译的工具链运行测试
    cd ~/godev/src/net/http; ~/godev/bin/go test

建议您在个人资料中添加一个别名,例如

alias godev=~/godev/bin/go
,然后即可运行
godev test

还要确保您未设置

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

更新资料

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

  1. 提到“找不到包”的错误是在寻找供应商提供的某些包

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

  2. 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。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/391010.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号