go的编译器会在$GOPATH/src下面寻找对应的模块,src下的每一个目录都可以对应一个模块,目录中的目录也可以是一个模块
├───main│ main.go // 引入utils里面的Name变量│└───modelutils.go // var Name string = "xiao"// 变量必须是大写,否则报错name not exported by package model// main.gopackage mainimport ("fmt"// 引包// 省略GOPATH/src, Go编译的时候会自动在src目录下寻找"go_code/pointer/model")func main() {fmt.Println(model.Name) // xiao}
GO111MODULE=on
在GO111MODULE=on,并且已经设置GOPATH的条件下,写的代码在$GOPATH/src下,我想要使用另一个package里面的内容,并且这个package不是标准库,或者说不在GOROOT里(一般我们不会修改GOROOT中的内容)
编译报错
package go_code/pointer/model is not in GOROOT

解决办法
方法一:GO111MODULE=off
go env -w GO111MODULE=off设置完之后, go env查看然后重新编译即可
第二种方式:使用go mod
相关链接: https://blog.csdn.net/weixin_44676081/article/details/107279746
