Go語言是一門全新的靜態型別開發語言,具有自動垃圾回收,豐富的內建型別,函數多回傳值,錯誤處理,匿名函數,並發編程,反射等特性.
go指令依賴一個重要的環境變數:$GOPATH
GOPATH允許多個目錄,當有多個目錄時,請注意分隔符,多個目錄的時候Windows是分號;
當有多個GOPATH時預設將go get取得的套件存放在第一個目錄下
$GOPATH目錄約定有三個子目錄
1 、src存放原始碼(例如:.go .c .h .s等) 依照golang預設約定,go run,go install等指令的目前工作路徑(即在此路徑下執行上述指令)。
2、pkg編譯時產生的中間檔案(例如:.a) golang編譯套件時
3、bin編譯後產生的可執行檔(為了方便,可以把此目錄加入到$PATH 變數中,如果有多個gopath,那麼使用${GOPATH//://bin:}/bin加入所有的bin目錄)
程式碼目錄結構規劃
GOPATH下的src目錄就是接下來開發程式的主要目錄,所有的原始碼都是放在這個目錄下面,那麼一般我們的做法就是一個目錄一個項目,
例如: $ GOPATH/src/mymath 表示mymath這個應用程式或可執行應用,這個根據package是main還是其他來決定,main的話就是可執行應用,其他的話就是應用包,這個會在後續詳細介紹package。
首先看下我的go環境: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
其實就是golang 的安裝路徑
當你安裝好golang之後其實這個就已經有了
GOBIN
#先看結構:
我們通常是在project目錄下執行go build,例如:
D:\project\src\go_dev\day1\package_example\main>go run main.go 400 100
現在需要編譯main.go,golang 會自動去src下找hello目錄,因為我的main.go中程式碼的開通導入了packag main包,所以可以編譯成可執行文件,但是這樣默認在當前目錄下生成可執行文件,雖然可以指定目錄,但是還是感覺不是非常方便
d:\project>go build go_dev/day1/package_example\main
所以還有兩個非常好用的指令:go get 和go install
go get
#go get會做兩件事:
1、從遠端下載需要用到的套件
2、執行go install
go install
go install 會產生可執行檔直接放到bin目錄下,當然這是有前提的
你編譯的是可執行文件,如果是一個普通的包,會被編譯生成到pkg目錄下該文件是.a結尾
關於go的整體一個開發目錄
go_project // go_project为GOPATH目录 -- bin -- myApp1 // 编译生成 -- myApp2 // 编译生成 -- myApp3 // 编译生成 -- pkg -- src -- myApp1 // project1 -- models -- controllers -- others -- main.go -- myApp2 // project2 -- models -- controllers -- others -- main.go -- myApp3 // project3 -- models -- controllers -- others -- main.go
Linux下配置go環境
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、移動到/usr/local/go 也就是GOROOT
4、設定GOPATH,還有PATH環境變數
export GOROOT=/usr/local/go #设置为go安装的路径 export GOPATH=$HOME/gocode #默认安装包的路径 export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
看Linux go env
GOARCH="amd64" GOBIN="" GOEXE="" GOHOSTARCH="amd64" GOHOSTOS="linux" GOOS="linux" GOPATH="/root/gocode" GORACE="" GOROOT="/usr/local/go" GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64" GCCGO="gccgo" CC="gcc" GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build057487015=/tmp/go-build -gno-record-gcc-switches" CXX="g++" CGO_ENABLED="1" CGO_CFLAGS="-g -O2" CGO_CPPFLAGS="" CGO_CXXFLAGS="-g -O2" CGO_FFLAGS="-g -O2" CGO_LDFLAGS="-g -O2" PKG_CONFIG="pkg-config" go env
更多golang知識請關注golang教程欄位。
以上是Go語言中GOROOT、GOPATH、GOBIN詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!