问题描述
你期待的结果是什么?实际看到的错误信息又是什么?
继续上午 晚上回来用windOW就这么一弄 就成功了。很神奇最上面一个就是晚上的截图
继续上午 晚上回来用windOW就这么一弄 就成功了。很神奇最上面一个就是晚上的截图
其实错误提示已经说的很清楚了,不是找不到,而是包下面没有 go 文件,golang.org/x/net 下面有很多子包,你需要执行对应有 Go 文件的包,比如 golang.org/x/net/html。
$ go get golang.org/x/net/html
查看 $GOPATH/pkg/ 下的相应路径,将会找到 html.a 的静态库文件。
一个目录是一个包,在顶层编译并不会自动将底层的包编译好,也就是如果你要编译 golang.org/x/net/html 包,通过 go get golang.org/x/net 是不行的,比如明确指定 golang.org/x/net/html 才行。
Go package 主要是两种类型。
一个是生成可执行文件的包,包名固定为 main,其中必须有一个 main 入口函数,生成的可执行文件目录默认在 go 安装路径下的 bin/ 目录。
另外一种可以生成静态库文件的包,非 main 包,go get/install 会在 pkg 目录下生成相应的 .a 文件,比如上面的 golang.org/x/net/html 包。.a 文件的存放路径在 GOPATH 的 pkg 目录下。
主要问题是国内无法访问golang.org,解决办法:
mkdir -p $GOPATH/src/golang.org/x
cd $GOPATH/src/golang.org/x
git clone https://github.com/golang/net... --depth 1
git clone https://github.com/golang/tex... --depth 1
git clone https://github.com/golang/sys... --depth 1
git clone https://github.com/golang/cry... --depth 1
git clone https://github.com/golang/oau... --depth 1
需要先安装git。
7 回答5.4k 阅读
6 回答6.9k 阅读✓ 已解决
4 回答2.3k 阅读
1 回答3.4k 阅读
2 回答938 阅读✓ 已解决
2 回答2.3k 阅读
1 回答2.2k 阅读
首先你的命令部队,
go install
是用来安装的,而安装的的包golang.org/x/sys
不是一个可执行的包,你需要使用go get golang.org/x/sys
来下载这个包。其次,看你第一张图的报错信息,应该用的是
modules
来管理的包依赖,这个时候,需要在根目录使用go mod tidy
来处理依赖问题。解释下 golang 的
go get
和go mod
两种包的关系吧。golang的
module
之前项目依赖包直接使用go get
来获取,源码会放入GOPATH/src/
下。在golang 1.11版本之后,加入了
module
来管理包依赖,在项目的根目录会有一个go.mod
文件来记录当前项目锁依赖的包和包的版本,包的源码放在GOPATH/pkg/mod/
下。这是两种不同的包管理方式。