本文主要介绍GOPATH的详细说明和Go语言的工作目录。本文讲解了GOPATH设置、应用目录结构、编译和应用等。详细地说。有需要的可以参考一下。
GOPATH设置
go命令依赖于一个重要的环境变量:$GOPATH1
(注意:这不是Go安装目录。以下面作者的工作目录为例,请在自己的机器上替换工作目录。)
在类似Unix的环境中,它是这样设置的:
复制代码如下:
导出GOPATH=/home/apple/mygo
为了方便起见,您应该创建上面的文件夹,并将上面的行添加到的配置文件中。巴沙尔或者。zshrc还是自己的sh。
Windows设置如下,新的环境变量命名为GOPATH:
复制代码如下:
GOPATH=c:mygo
GOPATH允许多个目录。当有多个目录时,请注意分隔符。当有多个目录时,Windows是分号,Linux是冒号。当有多个GoPaths时,默认情况下,go get的内容将放在第一个目录中。
上面的GOPATH目录有三个子目录:
1.src存储源代码(比如:走吧。健康、安全等)
2.2.pkg编译后生成的文件(例如:答
3.bin编译后生成的可执行文件(为了方便,这个目录可以添加到$PATH变量中。如果有多个gopath,那么使用$ {gopath//:/bin:}/bin来添加所有的bin目录)
将来,我所有的例子都将使用mygo作为我的gopath目录。
应用目录结构
设置包和目录:$GOPATH/src/mymath/sqrt.go(包名: mymath )
将来,当您创建一个新的应用程序或代码包时,您将在src目录中创建一个新的文件夹。文件夹名一般是代码包的名称,当然也可以允许多级目录。例如,如果在src下创建一个新目录$ gopath/src/github.com/astaxie/beedb,那么包路径就是“github . com/astaxie/beedb”,包名就是最后一个目录beedb。
执行以下代码:
复制代码如下:
cd $GOPATH/src
mkdir mymath
用以下内容创建一个新文件sqrt.go:
复制代码如下:
//$GOPATH/src/mymath/sqrt.go源代码如下:
打包我的数学
函数Sqrt(x float64) float64 {
z :=0.0
对于I:=0;i 1000我{
z -=(z*z - x)/(2 * x)
}
返回z
}
我的应用程序包目录和代码是新创建的。注意:一般建议包名和目录名一致。
编译应用
上面我们已经构建了自己的应用包,如何编译安装?有两种安装方式。
1.只要进入对应的应用包目录然后执行go install,就可以安装了。
2.执行以下代码,将mymath安装到任意目录中
安装完成后,我们可以进入以下目录:
复制代码如下:
CD $ GOPATH/pkg/$ { GOOS } _ $ { go arch }
//您可以看到以下文件
mymath.a
这个。一个文件就是一个应用包,那么我们怎么称呼它呢?
接下来,我们创建一个新的应用程序来调用
新的应用程序包mathapp:
复制代码如下:
cd $GOPATH/src
mkdir mathapp
cd mathapp
vim main.go
//$GOPATH/src/mathapp/main.go来源:
复制代码如下:
主包装
导入(
“我的数学”
fmt
)
func main() {
fmt。printf(‘你好,世界。Sqrt(2)=%vn ,mymath。Sqrt(2))
}
程序怎么编译?进入应用目录,然后执行go build,那么该目录下就会生成一个mathapp的可执行文件。
复制代码如下:/mathapp
输出以下内容
复制代码如下:
你好,世界。sqrt(2)=1.414253636738767
如何安装应用程序,进入目录并执行go install,然后在$GOPATH/bin/下添加一个可执行文件mathapp,在命令行输入以下命令即可执行
复制代码如下:
mathapp
它还输出以下内容
复制代码如下:
你好,世界。sqrt(2)=1.414253636738767
获取远程包
Go语言有一个获取远程包的工具,即go get。目前go get支持大部分开源社区(如github、googlecode、bitbucket、Launchpad)。
复制代码如下:
去找github.com/astaxie/beedb
Get-u参数可以自动更新包,go get时会自动获取包所依赖的其他第三方包。
通过这个命令可以获得相应的源代码,相应的开源平台使用不同的源代码控制工具,比如git用于github,hg用于googlecode。所以,要想获得这些源代码,必须先安装相应的源代码控制工具。
上面在我们的本地源代码中获得的代码的相应代码结构如下:
复制代码如下:
$GOPATH
科学研究委员会
|-github.com
|-阿斯塔西
|-beedb
包装
|-对应的平台
|-github.com
| -阿斯塔西
|beedb.a
Go get本质上可以理解为第一步是通过源码工具克隆src下的代码,然后执行go install。
代码中如何使用远程包和使用本地包一样简单,只需要在开头导入相应的路径即可。
复制代码如下:
导入 github.com/astaxie/beedb
程序的整体结构
上面建立的本地mygo的目录结构如下
复制代码如下:
bin/
mathapp
pkg/
平台名称/如darwin_amd64、linux_amd64
mymath.a
github.com/
阿斯塔谢/
beedb.a
src/
mathapp
main.go
我的数学/
sqrt.go
github.com/
阿斯塔谢/
beedb/
beedb.go
util.go
从上面的结构中我们可以清楚的看到,编译后的可执行文件存放在bin目录下,功能包存放在pkg下,应用源代码存放在src下。
[1]Windows系统中环境变量的形式是%GOPATH%。本书主要采用Unix形式。Windows用户应该自己更换。