站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        Go語言中GOROOT、GOPATH、GOBIN詳解

        Go語言中GOROOT、GOPATH、GOBIN詳解

        Go語言是一門全新的靜態(tài)類型開發(fā)語言,具有自動垃圾回收,豐富的內(nèi)置類型,函數(shù)多返回值,錯誤處理,匿名函數(shù),并發(fā)編程,反射等特性.

        go命令依賴一個重要的環(huán)境變量:$GOPATH
        GOPATH允許多個目錄,當有多個目錄時,請注意分隔符,多個目錄的時候Windows是分號;

        當有多個GOPATH時默認將go get獲取的包存放在第一個目錄下

        $GOPATH目錄約定有三個子目錄

        1、src存放源代碼(比如:.go .c .h .s等) 按照golang默認約定,go run,go install等命令的當前工作路徑(即在此路徑下執(zhí)行上述命令)。

        2、pkg編譯時生成的中間文件(比如:.a)  golang編譯包時

        3、bin編譯后生成的可執(zhí)行文件(為了方便,可以把此目錄加入到 $PATH 變量中,如果有多個gopath,那么使用${GOPATH//://bin:}/bin添加所有的bin目錄)

        代碼目錄結(jié)構(gòu)規(guī)劃

        GOPATH下的src目錄就是接下來開發(fā)程序的主要目錄,所有的源碼都是放在這個目錄下面,那么一般我們的做法就是一個目錄一個項目,

        例如: $GOPATH/src/mymath 表示mymath這個應(yīng)用包或者可執(zhí)行應(yīng)用,這個根據(jù)package是main還是其他來決定,main的話就是可執(zhí)行應(yīng)用,其他的話就是應(yīng)用包,這個會在后續(xù)詳細介紹package。

        首先看下我的go環(huán)境:go env

        C:UsersAdministrator>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:BaiduNetdiskDownloadgo set GOTOOLDIR=D:BaiduNetdiskDownloadgopkgtoolwindows_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之后其實這個就已經(jīng)有了

        GOBIN

        首先看一下結(jié)構(gòu):

        Go語言中GOROOT、GOPATH、GOBIN詳解

        我們通常是在project目錄下執(zhí)行g(shù)o build,例如:

        D:projectsrcgo_devday1package_examplemain>go run main.go 400 100

        現(xiàn)在需要編譯main.go,golang 會自動去src下找hello目錄,因為我的main.go中代碼的開通導入了packag main包,所以可以編譯成可執(zhí)行文件,但是這樣默認在當前目錄下生成可執(zhí)行文件,雖然可以指定目錄,但是還是感覺不是非常方便

        d:project>go build go_dev/day1/package_examplemain

        所以還有兩個非常好用的命令:go get 和go install

        go get

        go get會做兩件事:

        1、從遠程下載需要用到的包

        2、執(zhí)行g(shù)o install

        go install

        go install 會生成可執(zhí)行文件直接放到bin目錄下,當然這是有前提的

        你編譯的是可執(zhí)行文件,如果是一個普通的包,會被編譯生成到pkg目錄下該文件是.a結(jié)尾

        關(guān)于go的整體一個開發(fā)目錄

        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環(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、移動到 /usr/local/go 也就是GOROOT

        4、設(shè)置GOPATH,還有PATH環(huán)境變量

        export GOROOT=/usr/local/go #設(shè)置為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

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
        主站蜘蛛池模板: 亚洲精品国产福利一二区| 正在播放国产精品每日更新| 欧美精品整片300页| 国产福利在线观看精品| 日本精品一区二区三区在线视频一 | 合区精品中文字幕| 66精品综合久久久久久久| 国产精品拍天天在线| 中文字幕乱码中文乱码51精品| 国产欧美日韩综合精品一区二区三区 | 国产精品美女久久久网AV| 国产精品欧美亚洲韩国日本不卡 | 日韩精品一区二区三区中文| 久久性精品| 国产精品亚洲欧美大片在线观看 | 日韩精品无码熟人妻视频| 精品无码人妻一区二区三区不卡| 久久九九青青国产精品| 国产精品成人A区在线观看| 亚洲精品国产日韩无码AV永久免费网| 国产香蕉国产精品偷在线| 99久久国产综合精品成人影院| 国产午夜精品视频| 69国产成人综合久久精品| 精品一区二区三区免费毛片爱| 无码精品一区二区三区在线| 亚洲第一极品精品无码久久| 亚洲一级Av无码毛片久久精品| 亚洲国产成人精品无码久久久久久综合| 久久国产精品一区| 久热精品视频第一页| 久热精品人妻视频| 免费视频成人国产精品网站 | 精品在线免费观看| 国产精品福利在线观看| 国内精品手机在线观看视频| 国产福利微拍精品一区二区| 精品久久久久久久| 麻豆精品久久久一区二区| 午夜精品在线观看| 国产99久久久国产精品~~牛|