设置GOROOT的原因

编译器的位置指定的时候,需要指定GO开发包的安装位置,然后设置环境变量PATH的时候,需要指定到安装包下的bin目录,其中就有以下的编译/执行器.所以GOROOT指定了前面的路径.

当使用go  run  源码,自动化的完成编译和执行二进制文件的时候.源码必须放在当前运行go解释器的同一目录下,然后编译器才能访问的到.这时不用设置GOPATH.

当使用go build  源码,要先编译成二进制代码,再执行二进制代码的方式来运行程序.

设置GOPATH的原因

从 Go 1.8 版本开始,Go 开发包在安装完成后,将 GOPATH 赋予了一个默认的目录

如果不使用工作目录的概念,在多人开发时,每个人有一套自己的目录结构,读取配置文件的位置不统一,输出的二进制运行文件也不统一,这样会导致开发的标准不统一,影响开发效率

工作空间中的内容:

GOPATH 下应有三个目录:

  • src :包含Go的源文件,它们被组织成包(每个目录都对应一个包)                 src 执行go install时候必须有,此外子目录为包.包中为源码.

  • pkg:包含包对象,也即编译好的库文件 *.a

  • bin:包含可执行命令    当执行go install时会自动生成二进制文件放到这里.

go install运行时跟src/bin/pkg关联.而go run/go build就不管工作目录了.只在当前目录下工作.

最新文章

  1. IEEE浮点数表示法之出小数
  2. vector & array
  3. Dynamics CRM JS的调试的弊端解决办法
  4. java 多线程(总结)
  5. Manjaro安装后,应该做的操作,仅作为自己备份使用,如有参考不懂,请留言咨询,或Q609916691
  6. [HEOI2016/TJOI2016]排序
  7. Linux 文件umask默认权限_012
  8. 在linux系统安装tomcat后,bin文件下startup.sh启动不
  9. SSE图像算法优化系列二:高斯模糊算法的全面优化过程分享(一)。
  10. mapper映射文件不发布
  11. 客户端负载均衡Feign之一:申明式服务调用Feign入门示例
  12. SV中的OOP
  13. 【SQL模板】一.修改/新增存储过程TSQL
  14. distinct group by 去重查询
  15. Keras-图片预处理
  16. Mininet实验 设置带宽之简单性能测试
  17. PHP部分常见算法
  18. 【集成学习】lightgbm调参案例
  19. Java程序员之Spring(一) 入门
  20. [水煮 ASP.NET Web API2 方法论](12-3)OData 查询

热门文章

  1. C运算符(算数运算符)
  2. 神奇的 SQL 之别样的写法 → 行行比较
  3. windows的基本命令和环境配置
  4. Specify Default JDK on Ubuntu
  5. 003 TCP/IP协议详解(一)
  6. DFT、DTFT、DFS、FFT之间的关系
  7. C#10在List, Queue 以及Stack中使用EnsureCapacity方法来提升性能
  8. @Profile-根据不同环境注入bean
  9. C# 如何在编译时将 dll 复制到 bin\Release 目录下
  10. 13.SpringMVC之全局异常