GOPATH

GOPATH

工作目录就是我们用来存放开发的源代码的地方,对应的就是Go里的GOPATH这个环境变量。这个环境变量指定之后,我们编译源代码等生成的文件都会放到这个目录下,GOPATH环境变量的配置参考golang环境搭建,配置到/etc/profile或者Windows下的系统变量里。

前面我们在安装Go的时候看到需要设置GOPATH变量,Go从1.1版本到1.7必须设置这个变量,而且不能和Go的安装目录一样,这个目录用来存放Go源码,也就是Go的工作空间(workspace,GOPATH环境变量指向的目录),Go的可运行文件,以及相应的编译之后的包文件。所以这个目录下面有三个子目录:src、bin、pkg。从go 1.8开始,GOPATH环境变量现在有一个默认值,如果它没有被设置。 它在Unix上默认为$HOME/go,在Windows上默认为%USERPROFILE%/go。

这里对GO工作空间包含的三个目录作一个说明

  • src :里面的每个子目录都是一个包。包内是Go的源码文件
  • pkg :编译后生成的,包的目标文件
  • bin :编译后生成的可执行文件

GOPATH允许多个目录,当有多个目录时,请注意分隔符,多个目录的时候Windows是分号,Linux系统是冒号,当有多个GOPATH时,默认会将go get的内容放在第一个目录下。

代码目录结构规划

GOPATH下的src目录就是接下来开发程序的主要目录,所有的源码都是放在这个目录下面,那么一般我们的做法就是一个目录一个项目。

project1 // (project1添加到GOPATH目录了)
  -- bin
  -- pkg
  -- src  
     -- models       // package
     -- controllers  // package
     -- main.go      // package main[注意,本文所有main.go均指包main的入口函数main所在文件]
project2 // (project2添加到GOPATH目录了)
   -- bin
   -- pkg
   -- src
      -- models       // package
      -- controllers  // package
      -- main.go      // package main

使用go build可以在src文件夹下编译生成名为“src”的可执行文件。这是golang默认约定。一般我个人不怎么用这个命令。因为它会生成可执行文件在src目录下面。

我一般用:go get 和 go install。

原文地址:https://www.cnblogs.com/itbsl/p/9843764.html