https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/01.2.md
Windows 環境:
下面我就以mymath為例來講述如何編寫應用包:
cd $GOPATH/src mkdir mymath // 我的環境:$GOPATH = c:\mygo
新建文件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 }
在默認的src文件夾下面的這個mypath是我自己新建的
編譯應用
上面我們已經建立了自己的應用包,如何進行編譯安裝呢?有兩種方式可以進行安裝
1、只要進入對應的應用包目錄,然后執行go install
,就可以安裝了
2、在任意的目錄執行如下代碼go install mymath
紅色的表示沒有新建這個mypath文件夾和sqrt.go文件,綠色的是我新建好后運行的命令,沒有報錯誤
安裝完之后,我們可以進入如下目錄
cd $GOPATH/pkg/${GOOS}_${GOARCH} //可以看到如下文件 mymath.a
我的路徑(查看剛才生成的文件路徑):
C:\Go\pkg\windows_amd64
這個.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)) }
可以看到這個的package是main
,import里面調用的包是mymath
,這個就是相對於$GOPATH/src
的路徑,如果是多級目錄,就在import里面引入多級目錄,如果你有多個GOPATH,也是一樣,Go會自動在多個$GOPATH/src
中尋找。
如何編譯程序呢?進入該應用目錄,然后執行go build
,那么在該目錄下面會生成一個mathapp的可執行文件