這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
自2009年Go語言發布以來,我一直在關注Go語言,如今Go語言已經發展到1.2版本,而且也收到越來越多的人關注這門語言。Go語言設計的目的就是為瞭解決執行數度快但是編譯數度並不理想(如C++)以及編譯速度快但執行效率不佳(.NET、Java),或者開發難度低但執行速度一般的動態語言這一問題。所以說,Go語言的特點是:快速編譯,高效執行,易於開發。
好了,跳過那些框框條條的craps, 讓我們直接先從Go語言的環境搭建開始,由於最近偏愛Ubuntu,在加上作為一門開源語言,在Linux上從原始碼開始搭建環境更讓人覺得有趣味性。
當然,如果你需要快速的搭建環境,也可以直接參考官方文檔:http://golang.org/doc/install.html。考慮到官方文檔已經十分詳細,這裡我就不再一一闡述了。
1. 設定Go環境變數
開啟終端,輸入命令:
export GOROOT=$HOME/goexport PATH=$GOROOT/bin:$PATH
當然,你需要設定項目的目錄
export GOPATH=$HOME/Applications/Go
2. 安裝C工具
由於Go的工具鏈是用C語言編寫的, 因此在安裝Go之前序言安裝相關的C工具。執行一下命令:
sudo apt-get install bison ed gawk gcc libc6-dev make
3. 安裝Mercurial
由於Go的源碼是通過Mercurial進行管理的, 所以需要先安裝Mercurial來實現Go源碼的擷取,一次執行一下命令:
sudo apt-get install python-setuptoolssudo apt-get install pythone-devsudo apt-get install build-essentialsudo apt-get install mercurial
4. 擷取Go原始碼
hg clone -r release https://go.googlecode.com/hg/ $GOROOT
5. 構建Go
在終端中執行一下命令來構建Go
cd $GOROOT/src
./all.bash
編譯完成後會自動化的測試,但是在測試net/http時會連結google.com, 在國內環境稍微有一點不穩定(第一次編譯成功掛掉了...),所以建議是增加一條環境變數
export DISABLE_NET_TESTS=1
來跳過net的測試.
總結:以上步驟可以通過運行以下指令碼來執行:
#!/bin/bash #set envif [ "`grep "export GOROOT=/usr/local/go" /etc/profile`" = "" ]; then echo "export GOROOT=/usr/local/go" >> /etc/profilefi if [ "`grep "export PATH=$GOROOT/BIN:$PATH" /etc/profile`" = "" ]; then echo "export PATH=$GOROOT/bin:$PATH" >> /etc/profilefi#install csudo apt-get install -y bison ed gawk gcc libc6-dev make #install mercuialsudo apt-get install -y python-setuptools python-dev build-essential mercuial #get code of gohg clone -r release https://go.googlecode.com/hg/ $GOROOT #compile gocd $GOROOT/src./all.bashexit 0
6. 測試安裝
完成安裝後,建立一個文檔來測試環境是否搭建成功:
Example helloWorld.go
1 package main 2 3 import ( 4 "fmt" 5 "runtime" 6 ) 7 8 func main() { 9 fmt.Println("Hellow World!", runtime.Version())10 }
執行go run helloWorld.go, 應該會列印出:
Hellow World! go1.2