gopath配置,GOPATH,Go语言的GOPATH与工作目录详解

gopath配置,GOPATH,Go语言的GOPATH与工作目录详解

本文主要介绍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用户应该自己更换。

gopath配置,GOPATH,Go语言的GOPATH与工作目录详解