GOPATH
程序员文章站
2022-06-21 11:22:29
工作目录就是我们用来存放开发的源代码的地方,对应的就是Go里的GOPATH这个环境变量。这个环境变量指定之后,我们编译源代码等生成的文件都会放到这个目录下。 ......
目录
gopath
工作目录就是我们用来存放开发的源代码的地方,对应的就是go里的gopath这个环境变量。这个环境变量指定之后,我们编译源代码等生成的文件都会放到这个目录下,gopath环境变量的配置参考,配置到/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。