1. 程式人生 > >親測GO環境搭建,理解go build、go install、go get

親測GO環境搭建,理解go build、go install、go get

net usr 方便 進制 方式 總結 所有 直接 app

GO下載: GO語言中文網下載:https://studygolang.com/dl Mac下直接通過brew instatll go指令即可完成下載安裝
GO環境變量配置: $GOROOT=/usr/local/go GO安裝目錄 $GOPATH=/usr/local/var/www/go GO工作目錄 $GOBIN=$GOPATH/bin GO可執行文件目錄 $PATH=$PATH:$GOBIN:$GOROOT/bin 將GO可執行文件加入PATH中,使GO指令與我們編寫的GO應用可以全局調用 技術分享圖片

$GOPATH工作目錄結構,約定有三個子目錄(需要自行創建): src ——存放源代碼文件 pkg——存放編譯後的文件 bin ——存放編譯後的可執行文件
示例(首先使用go推薦的go build方式構建應用,稍後會說到其他的方式): 通過我們的操作,在最終測試成功後,$GOPATH的目錄樹應該如下所示: 技術分享圖片 具體操作如下: 1、創建應用包mypkg:切到【$GOPATH/src】目錄下,創建一個mypkg目錄,在mypkg目錄下,新建一個hello.go,內容如下: 技術分享圖片 2、編譯應用包(在此Demo中,此步驟並不必要,在此只是為了展示go install編譯效果):在剛剛的目錄下執行【go install】指令或者在任意目錄下執行【go install mypkg】指令,如果代碼有錯或依賴找不到會報錯,如果正確則沒有任何提示。此時,你可以切到【$GOPATH/pkg】目錄下,會發現多了一個名為【$GOOS_$GOARCH】的目錄,切進該目錄,就會看到剛剛編譯生成的文件mypkg.a文件。(其中$GOOS與$GOARCH的具體值可以通過【go env】指令查詢,更多詳情可參看:http://wiki.jikexueyuan.com/project/go-command-tutorial/0.14.html) 技術分享圖片
3、創建新應用包myapp,創建新文件main.go(同步驟1),import引入mypkg包,內容如下: 技術分享圖片 4、構建可執行文件:在myapp目錄下,使用【go build】指令,會在當前目錄下生成一個myapp的可執行文件,這個可執行文件不依賴其他文件,復制到任何目錄下都可通過【./myapp】執行,復制到任何$PATH配置的目錄中都可通過【myapp】全局執行。 技術分享圖片 技術分享圖片 技術分享圖片 總結:我們在這個Demo裏主要用到了兩個GO指令,【go install】與【go build】,他們的區別如下: 【go build】指令的作用是:在當前目錄下編譯生成可執行文件。註意,go build指令會調用所有引用包的源碼,重新編譯,而不是直接使用pkg裏的編譯後文件,如果在【$GOROOT】與【$GOPATH】下沒有找到import引入包的項目源碼,就會報錯。在本demo裏,main.go中import引入了"mypkg"包,如果我刪除【$GOPATH/src/mypkg】源碼,執行【go build】指令,會報錯如下: 技術分享圖片
【go install】指令的作用是:編譯源代碼,如果為可執行文件(package "main"且包含main方法),則會編譯生成可執行文件到【$GOPATH/bin】目錄下;可執行文件import引入的其他包,就會被編譯到【$GOPATH/pkg/$GOOS_$GOARCH】目錄下。 (關於go的導入和編譯,如果有不清楚的,可以看下這篇博客https://studygolang.com/articles/3189) 我們會發現:【go install】也可以完成類似【go build】的功能,區別在於【go install】會生成二進制文件到【$GOPATH/pkg/$GOOS_$GOARCH】目錄下(這個二進制文件對於我們並沒什麽意義),但【go install】會把可執行文件自動生成到【$GOBIN】目錄下,這是在一開始被配置到【$PATH】中了,這樣就可以使項目可執行文件能被方便的全局調用。 如果在本Demo中,使用【go install】構建可執行文件: 我們編寫好源代碼文件時,目錄樹如下: 技術分享圖片 切到myapp目錄下,執行【go install】指令,會生成如下結構目錄樹: 技術分享圖片 此時就可以通過【myapp】全局執行了!
其他指令: go env指令可檢查go環境 技術分享圖片 go version查看go版本 技術分享圖片 go get可以暫時理解為git clone到【$GOPATH/src】 + go install

親測GO環境搭建,理解go build、go install、go get