golang安裝

安裝golang

GOROOT 理論上只要定義這一個環境變量就可以玩了,go編譯的時候會首先在安裝目錄下尋找包
GOBIN 如果不定義的話,默認是GOROOT/bingo. GOBIN 加入到PATH目錄中.這個你懂的
GOPATH 一般是你的開發目錄,可以有多個.多個目錄的時候Windows是分號,Linux系統是冒號,當有多個GOPATH時,默認會將go get的內容放在第一個目錄下
$GOPATH 目錄約定有三個子目錄:

src 存放源代碼(比如:.go .c .h .s等)
pkg 編譯後生成的文件(比如:.a)
bin 編譯後生成的可執行文件(爲了方便,可以把此目錄加入到 $PATH 變量中)
編譯

構建一個Go程序需要兩步:編譯和鏈接。
編譯和鏈 接過程都由工具go處理,它不僅可以構建本地程序和包,還能夠獲取、構建以及安裝第三方程序和包。

go build

go build 只編譯主程序(有main()函數的go文件).且如果不指定-o參數,會當前目錄下生成一個可執行文件。
go build -o myfirstgo 例如 hellogo.go 編譯成指定目標文件名myfirstgo
go build 後面不帶文件名,我們將得到一個與目錄名同名的可執行文件 例如app/main.go 則得到app

如果有多個項目,即由多個main..則可指定項目,可在go build之後加上文件名,例如go build a.go;

go get

go get 獲取遠程包的工具,目前go get支持多數開源社區(例如:github、googlecode、bitbucket、Launchpad)

例如 :go get github.com/astaxie/beedb go get -u 參數可以自動更新包,而且當go get的時候會自動獲取該包依賴的其他第三方包
go get本質上可以理解爲首先第一步是通過源碼工具clone代碼到src下面,然後執行go install

要想go能夠編譯本地程序和包,有三個要求:

Go的bin目錄($GOROOT/bin或%GOROOT%\bin)必須在PATH環境變 量下
必須存在一個目錄,該目錄下包含一個src目錄,本地程序和包的源碼就駐留在src目錄下
包含src的那個目錄必須在GOPATH環境變量中設置
Go編譯器的package搜索順序是這樣的,以搜索hello這個package爲例:

首先,Go編譯器會在GO安裝目錄(GOROOT,這裏是/usr/local/go)下查找是否有src/pkg/hello相關包源碼;如果沒有則繼續;
若GOPATH=PATH1:PAHT2,則Go編譯器會依次查找是否存在PATH1/src/hello、PATH2/src/hello;配置在GOPATH中的PATH1和PATH2被稱作workplace;
go install

go install命令除了做了go build所做的事情之外,還將可執行文件放在標準位置(GOPATH/bingoinstallpkg( GOPATH /bin或%GOPATH>%\bin)加入到PATH環境變量中,我們安裝的所有Go程序就可以方便地被加入到PATH中。 install命令執行後,我們發現main目錄下沒有任何變化,原先build時產生的main可執行文件也不見了蹤影。
別急,前面說過Go install也有一套自己的約定:

go install編譯出的可執行文件文件名爲其所在目錄名.所以可以把main目錄改成你想要的目錄名
go install將可執行文件安裝到與src同級別的bin目錄下,bin目錄由go install自動創建.如果主文件不在src/DIR 子目錄下.則不會生成到bin目錄下
go install將可執行文件依賴的各種package編譯後,放在與src同級別的pkg目錄下
.
|– bin
| -- main.exe
|-- pkg
|
– windows_amd64
| -- hello.a
– src
|– hello
| -- hello.go
– main
`– main.go
1.go的入口程序,爲package main下的main函數..和其所在的包名和文件名無關..即包名,和文件名可以自定義.

2.雖然包名可以自定義,但是儘量保持爲main.因爲golang不允許同一個目錄下有兩個不同包名的文件出現,如果app/main.go,app/test.go,test的package爲app,則會發生下面的衝突

can’t load package: package app: found packages main (main.go) and app (test.go) in /Volumes/Opt/workspace-go/src/app

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章