GO学习--$GOBIN

GO环境变量与工作区

这个题目很大,内容很多,网上的资料也很多,巩固学习最好的方法是通过go help看文档,我仅能根据自己的学习经验,写一点自己学习过程中的理解。这里先附上GO语言规范文档,以供学习查阅,节约时间。
先声明一下,我的机器是MAC,linux下是基本一致的,Windows就不用看了,浪费您时间。


环境变量

先看图,终端执行命令go help environment

go_env.png

  • GOROOT GO语言的安装根目录,也是GO的安装路径
  • GOPATH 可以有多个,若干个工作区目录的路径,自定义的工作空间。通常遇到的错误都和GOPATH有关,一定要准确理解GOPATH的含义,设置正确的环境变量;go get xxx获得的依赖中,源码在./src路径下,go build后依赖生成的.a格式的静态库文件就在./pkg路径下。还有个./bin文件夹构成了基本机构。
  • GOBIN 程序生成的可执行文件的路径。这里注意,你可以设置它,也可以不设置,默认是个空字符串,我猜测它会链接距离最短的$GOPATH下的./bin文件夹;这里多说一句,需要go install才会链接到GOBIN,go build之后你的可执行文件和你的main.go在同一目录下。

工作区

dir0.png

如图是我的$GOPATH工作目录,这里请注意srcpkgbin,这个三个文件夹。先说一句,根据我的理解,这三个文件夹下面都是依赖,包括你自己的写的代码,也可以作为依赖使用。三个文件夹对应三种格式的文件,不管套了几层文件夹,内核不变。

  • src .go文件,这里是源码文件,你自己的代码写在这里。如图1是我的项目目录,也是一个$GOPATH目录.

dir1.png

但是注意包名的问题,因为你所依赖的代码也可能在这里,比如说github.comgolang.org,当然,GOPATH可以配置多个,这样别人的代码你可以把它放到一个通用的$GOPATH/src下,就像我一样。
dir2.png

  • pkg 参考c语言下的静态库文件.archive,后缀名缩写为.a格式
  • bin 这里的是可执行文件,也就是前面提到的make install的结果文件。

总结

学而时习之,虽然这里的内容都很简单,对于读者来说可能价值不大,但于我有三点好处:

  • 因为想写点什么东西,自然需要查阅资料,组织言语,增强理解
  • 若侥幸有志同道合的朋友读到此处,欢迎讨论,也能帮我指正不足
  • 记录一下作为GO初学者的理解,日后温故知新有个对照

你可能感兴趣的:(GO学习--$GOBIN)