ubuntu10.04下安裝配置GO語言環境

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

GO語言初探

簡介:一直想去研究一下Google牛人們搞出來的GO語言,終於在看了《Go語言之父談Go:大道至簡》這篇文章之後,安耐不住好奇,來體驗一下GO語言是什麼東西!

1.安裝環境ubuntu10.04

2.安裝Go的版本控制工具----這是為了下載Go語言的安裝源碼

    ~$:sudo apt-get install mercurial

   ~$ hg
分布式軟體組態管理工具 - 水銀

基本命令:

add add the specified files on the next commit
annotate show changeset information by line for each file
clone make a copy of an existing repository
commit commit the specified files or all outstanding changes
diff diff repository (or selected files)
export dump the header and diffs for one or more changesets
forget forget the specified files on the next commit
init create a new repository in the given directory
log show revision history of entire repository or files
merge merge working directory with another revision
pull pull changes from the specified source
push push changes to the specified destination
remove remove the specified files on the next commit
serve export the repository via HTTP
status show changed files in the working directory
summary summarize working directory state
update update working directory

使用 "hg help" 獲得全部命令的列表,或 "hg -v" 獲得詳細資料

不錯,一個版本管理工具,發現和git差不多

3.設定Go安裝編譯環境

   ~$:vim .bashrc

在檔案最後添加如下內容:

GOROOT="$HOME/Go"#$HOME=/home/username
export GOROOT
GOOS=linux#系統
export GOOS
GOARCH=386#平台
export GOARCH
GOBIN="$HOME/bin"
export GOBIN
PATH=$PATH:$GOBIN#保證正確編譯安裝
wq儲存推出
4.在配置好環境後利用第2步安裝的版本控制工具下載GO源碼

  ~$:hg clone -r release https://go.googlecode.com/hg/ $GOROOT

完成後在$HOME目錄下可以看到Go目錄,裡面放置了下載的Go語言的源碼

5.編譯下載的Go源碼

~$cd $GOROOT/src
~$./all.bash

執行完成後到$GOBIN目錄

~$cd $GOBIN
~$ls
  go godoc gofmt

發現已經安裝了go的相關可執行檔

可以測試go命令

  ~$ go
Go is a tool for managing Go source code.

Usage:

go command [arguments]

The commands are:

    build       compile packages and dependencies
    clean       remove object files
    doc         run godoc on package sources
    env         print Go environment information
    fix         run go tool fix on packages
    fmt         run gofmt on package sources
    get         download and install packages and dependencies
    install     compile and install packages and dependencies
    list        list packages
    run         compile and run Go program
    test        test packages
    tool        run specified go tool
    version     print Go version
    vet         run go tool vet on packages

Use "go help [command]" for more information about a command.

Additional help topics:
    gopath      GOPATH environment variable
    packages    description of package lists
    remote      remote import path syntax
    testflag    description of testing flags
    testfunc    description of testing functions
Use "go help [topic]" for more information about that topic.

6.寫一個簡單的例子來驗證一下Go的編譯連結執行過程

在任意目錄下建立hello.go檔案,內容如下:

package main 
import "fmt"
func main() {  
    fmt.Printf("Hello, world;\n"); 
}

然後使用8g hello.go去編譯,使用8l hello.8去連結,在執行./8.out

發現這裡的8g(386平台)和8l(386平台)都不識別,沒有該命令

到GOROOT目錄下,尋找一下8g、8l

~/Go$ find ./ -name "8g"
./src/cmd/8g
./.hg/store/data/src/cmd/8g
./pkg/tool/linux_386/8g

發現在./pkg/tool/linux_386/下面有相關命令,二話不說把目錄下的所以

可執行命令檔案拷貝到$GOBIN目錄下

~/Go$ cp ./pkg/tool/linux_386/* $GOBIND

這裡不知道為什麼在執行./all.bash的時候為什麼沒有做拷貝,我想要我

去設計時我會這麼做的;

好了這時候再去做:編譯、連結、執行就可以得到結果了

7.最後驗證一下安裝Go語言是否完全正確

到$GOROOT目錄下有個test的目錄下執行run指令碼

~$cd $GOROOT/test
~/Go/test$ ./run 
0 known bugs; 0 unexpected bugs

OK!沒有bug,沒有異常;


補充一下:

Go編譯器可以支援三種指令集。不同體繫結構產生的程式碼品質有一些差別:
amd64 (a.k.a. x86-64); 6g,6l,6c,6a
最成熟的實現,編譯器在寄存器層級最佳化,可以產生高品質的目標代碼(有時候gccgo可能更優)。
386 (a.k.a. x86 or x86-32); 8g,8l,8c,8a
amd64平台的的完整移植。
arm (a.k.a. ARM); 5g,5l,5c,5a

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.