在上篇搭建Go語言開發環境-基礎篇中提到的Go環境變量設置准備在這篇文章中進行一下優化已增加開發效率
之前的環境變量
export GOROOT=$HOME/go export GOBIN=$GOROOT/bin export GOARCH=amd64 export GOOS=linux export PATH=$GOBIN:$PATH export GOPATH=$HOME/goprograms
修改后的環境變量~/.bashrc文件變成了如下這樣:
export GOROOT=$HOME/go export PATH=$GOROOT/bin:$PATH
為什么要刪除GOBIN GOARCH GOOS呢??
因為系統默認都已經設置好這些變量了,不再需要配置了,除非要在linux下面編譯出windows下的可執行文件才需要配置這些變量,我們同樣也刪除了GOPATH變量,這樣Go就不能正常工作了,我們不在這里配置GOPATH的原因主要是避免每次建立新項目都要去改這個參數而是通過make文件的形式來變相滿足Go環境的需求,新增加的make文件內容如下:
#!/usr/bin/env bash if [ ! -f make ]; then echo 'make must be run within its container folder' 1>&2 exit 1 fi CURDIR=`pwd` OLDGOPATH="$GOPATH" export GOPATH="$CURDIR" gofmt -tabs=false -tabwidth=4 -w src go install test export GOPATH="$OLDGOPATH" echo 'finished'
運行這個make文件時,其實就是通過腳本的形式去動態改變GOPATH來編譯程序,還有一點要注意的就是當運行go install test時Go編譯器會去$GOPATH/src/test尋找main文件,運行成功后會生成bin、pkg文件夾,bin文件夾里面包含可執行文件test,如果之前設置了$GOBIN變量的話這個test可執行文件會被生成在$GOBIN所定義的目錄下,我們按照下圖所示建立一個測試項目,試一下這個make文件
在src/config下建立config.go文件:
package config func LoadConfig() { }
在src/test下建立main.go文件
package main import ( "config" "fmt" ) func main() { config.LoadConfig() fmt.Println("Hello, GO!") }
我們現在運行 ./make 會得到如下目錄結構
這時可以看到在bin下面已經生成test文件了,大功告成,以后如果新增加項目也只需把這個make文件復制過去改一下GOPATH路徑就ok了,不用每次都修改~/.bashrc了
特別感謝 @polaris 給予的幫助和他的文章