Windows 环境:

下面我就以mymath为例来讲述如何编写应用包:

cd $GOPATH/src  mkdir mymath   // 我的环境:$GOPATH = c:\mygo

Golang入门教程(一)GOPATH与工作空间(Windows)_Golang

新建文件sqrt.go,内容如下:

// $GOPATH/src/mymath/sqrt.go源码如下:package mymath

func Sqrt(x float64) float64 {
    z := 0.0
    for i := 0; i < 1000; i++ {
        z -= (z*z - x) / (2 * x)
    }    return z
}

Golang入门教程(一)GOPATH与工作空间(Windows)_Golang_02

在默认的src文件夹下面的这个mypath是我自己新建的

 

编译应用

上面我们已经建立了自己的应用包,如何进行编译安装呢?有两种方式可以进行安装

1、只要进入对应的应用包目录,然后执行go install,就可以安装了

2、在任意的目录执行如下代码go install mymath

Golang入门教程(一)GOPATH与工作空间(Windows)_Golang_03

红色的表示没有新建这个mypath文件夹和sqrt.go文件,绿色的是我新建好后运行的命令,没有报错误

 

安装完之后,我们可以进入如下目录

cd $GOPATH/pkg/${GOOS}_${GOARCH}//可以看到如下文件mymath.a

我的路径(查看刚才生成的文件路径):

C:\Go\pkg\windows_amd64

Golang入门教程(一)GOPATH与工作空间(Windows)_Golang_04

这个.a文件是应用包,那么我们如何进行调用呢?接下来我们新建一个应用程序来调用这个应用包,新建应用包mathapp

cd $GOPATH/src
mkdir mathapp
cd mathapp
vim main.go

这时候切换出Go的系统默认安装目录,进入自己新建的环境目录(我的:C:\mygo\src\mathapp)

 $GOPATH/src/mathapp/main.go源码:

package main

import (      "mymath"
      "fmt")

func main() {
      fmt.Printf("Hello, world.  Sqrt(2) = %v\n", mymath.Sqrt(2))
}

Golang入门教程(一)GOPATH与工作空间(Windows)_Golang_05

可以看到这个的package是main,import里面调用的包是mymath,这个就是相对于$GOPATH/src的路径,如果是多级目录,就在import里面引入多级目录,如果你有多个GOPATH,也是一样,Go会自动在多个$GOPATH/src中寻找。

如何编译程序呢?进入该应用目录,然后执行go build,那么在该目录下面会生成一个mathapp的可执行文件

 Golang入门教程(一)GOPATH与工作空间(Windows)_Golang_06