Go是一門全新的靜態(tài)類型開(kāi)發(fā)語(yǔ)言肆饶,具有自動(dòng)垃圾回收,豐富的內(nèi)置類型,函數(shù)多返回值岖常,錯(cuò)誤處理驯镊,匿名函數(shù),并發(fā)編程,反射等特性.
go命令依賴一個(gè)重要的環(huán)境變量:$GOPATH
GOPATH允許多個(gè)目錄竭鞍,當(dāng)有多個(gè)目錄時(shí)板惑,請(qǐng)注意分隔符,多個(gè)目錄的時(shí)候Windows是分號(hào);
當(dāng)有多個(gè)GOPATH時(shí)默認(rèn)將go get獲取的包存放在第一個(gè)目錄下
$GOPATH目錄約定有三個(gè)子目錄
src存放源代碼(比如:.go .c .h .s等)? ?按照golang默認(rèn)約定偎快,go run冯乘,go install等命令的當(dāng)前工作路徑(即在此路徑下執(zhí)行上述命令)。
pkg編譯時(shí)生成的中間文件(比如:.a) golang編譯包時(shí)
bin編譯后生成的可執(zhí)行文件(為了方便晒夹,可以把此目錄加入到 $PATH 變量中裆馒,如果有多個(gè)gopath姊氓,那么使用${GOPATH//://bin:}/bin添加所有的bin目錄)
代碼目錄結(jié)構(gòu)規(guī)劃
GOPATH下的src目錄就是接下來(lái)開(kāi)發(fā)程序的主要目錄,所有的源碼都是放在這個(gè)目錄下面领追,那么一般我們的做法就是一個(gè)目錄一個(gè)項(xiàng)目他膳,
例如: $GOPATH/src/mymath 表示mymath這個(gè)應(yīng)用包或者可執(zhí)行應(yīng)用,這個(gè)根據(jù)package是main還是其他來(lái)決定绒窑,main的話就是可執(zhí)行應(yīng)用棕孙,其他的話就是應(yīng)用包,這個(gè)會(huì)在后續(xù)詳細(xì)介紹package些膨。
首先看下我的go環(huán)境:go env
C:\Users\Administrator>go env
set GOARCH=amd64
set GOBIN=
set GOEXE=.exe
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=D:\project
set GORACE=
set GOROOT=D:\BaiduNetdiskDownload\go
set GOTOOLDIR=D:\BaiduNetdiskDownload\go\pkg\tool\windows_amd64
set GCCGO=gccgo
set CC=gcc
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0
set CXX=g++
set CGO_ENABLED=1
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
GOROOT
其實(shí)就是golang 的安裝路徑蟀俊,當(dāng)你安裝好golang之后其實(shí)這個(gè)就已經(jīng)有了。
GOBIN
首先看一下結(jié)構(gòu):
我們通常是在project目錄下執(zhí)行g(shù)o build,例如:
D:\project\src\go_dev\day1\package_example\main>go run main.go400100
現(xiàn)在需要編譯main.go订雾,golang 會(huì)自動(dòng)去src下找hello目錄肢预,因?yàn)槲业膍ain.go中代碼的開(kāi)通導(dǎo)入了packag main包,所以可以編譯成可執(zhí)行文件洼哎,但是這樣默認(rèn)在當(dāng)前目錄下生成可執(zhí)行文件,雖然可以指定目錄烫映,但是還是感覺(jué)不是非常方便。
d:\project>go build go_dev/day1/package_example\main
所以還有兩個(gè)非常好用的命令:go get 和go install
go get
go get會(huì)做兩件事:
1. 從遠(yuǎn)程下載需要用到的包
2. 執(zhí)行 #go install
go install 會(huì)生成可執(zhí)行文件直接放到bin目錄下噩峦,當(dāng)然這是有前提的
你編譯的是可執(zhí)行文件锭沟,如果是一個(gè)普通的包,會(huì)被編譯生成到pkg目錄下該文件是.a結(jié)尾
關(guān)于go的整體一個(gè)開(kāi)發(fā)目錄
Linux下配置go環(huán)境
1识补、首先下載linux下的go包:https://studygolang.com/dl/golang/go1.9.2.linux-amd64.tar.gz
2族淮、下載之后 #tar -zxvf go1.9.2.linux-amd64.tar.gz 解壓源碼包
3、移動(dòng)到 /usr/local/go 也就是GOROOT
4凭涂、設(shè)置GOPATH祝辣,還有PATH環(huán)境變量
export GOROOT=/usr/local/go #設(shè)置為go安裝的路徑
export GOPATH=$HOME/gocode #默認(rèn)安裝包的路徑
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
查看Linux go env
#go env
參考文章地址:
https://studygolang.com/articles/7202? ?
http://www.cnblogs.com/zhaof/p/7906722.html
努力成為一個(gè)開(kāi)發(fā)者 個(gè)人站點(diǎn):www.pythonav.cn
#