2013-06-27 49 views
4

我正在走Go語言的第一步,我正試圖在Debian Squeeze中安裝它。 我按照下載源代碼的步驟,然後,我這樣做是我的終端上:如何使用Go語言編譯程序?

cd $GOROOT/src 
./all.bash 

最後,它說這個:

# Checking API compatibility. 
Go version is "go1.1.1", ignoring -next /root/go/api/next.txt 
~pkg net, func ListenUnixgram(string, *UnixAddr) (*UDPConn, error) 
~pkg syscall (darwin-386), func Fchflags(string, int) error 
~pkg syscall (darwin-386-cgo), func Fchflags(string, int) error 
~pkg syscall (darwin-amd64), func Fchflags(string, int) error 
~pkg syscall (darwin-amd64-cgo), func Fchflags(string, int) error 
~pkg syscall (freebsd-386), func Fchflags(string, int) error 
~pkg syscall (freebsd-amd64), func Fchflags(string, int) error 
~pkg text/template/parse, type DotNode bool 
~pkg text/template/parse, type Node interface { Copy, String, Type } 

    ALL TESTS PASSED 

--- 
Installed Go for linux/amd64 in /root/go 
Installed commands in /root/go/bin 

所以,書上說,我需要做一些測試並用6g進行編譯。但我嘗試這樣說:

編譯該先去程序有:6G test.go 這編譯成一個文件:test.6 它與命令聯繫:6升test.6 這將產生可執行文件命名爲:6.out 與執行該命令:./6.out 併產生輸出:您好,世界

但沒有任何工程,我的代碼是:

package main 
func main() { 
     println(「Hello」, 「world」) 
} 

所以,我不知道知道還有什麼要做...我現在知道名字o我的編譯器,所以我不知道如何在Debian中編譯這個文件...如果你願意,請給我一個這樣的手......我會非常感謝你!

+0

你缺少'import「fmt」'它應該是'fmt.Println(...)'。我用'go run file.go'運行go代碼。 – squiguy

+0

忘掉'6g'和類似的工具。 (這些主要在Go 1之前使用)。使用['go'](http://golang.go/cmd/go/)命令。 – Mostafa

回答

6

看起來你是從如下說明:

要走的路:全面地介紹了圍棋編程語言 伊沃Balbaert。 第2.3節在Linux系統上安裝Go

這些說明已過時。他們使用過時版本的Go,版本0.60。您已安裝Go 1.1.1版。

要獲得最新的說明,請參閱Installing Go from source

此外,當你從書中複製程序,這本書中的代碼示例使用「(左雙引號)和」(右雙引號)。去期待「(引號)。

test.go圍棋程序爲:

package main 

func main() { 
    println("Hello", "world") 
} 

當你安裝了圍棋,它告訴你這 「Installed commands in /root/go/bin」。您需要在$ PATH中有/root/go/bin,以便它可以找到(識別)Go命令。

從包含test.go文件的目錄,運行

$ export PATH=$PATH:/root/go/bin 
$ go version 
go version go1.1.1 linux/amd64 
$ go run test.go 
Hello world 

如果失敗,你得到了什麼輸出?

+0

這是正確的!感謝您的幫助! :) – Javittoxs

3

看起來你已經成功地從源代碼安裝了Go,但是你真的應該通過Go Tour這個工具來介紹Go中的編程概念。

您提供的代碼缺少一些部分。您需要導入「fmt」庫,然後用fmt.對它們進行預處理,然後調用其中的任何函數。

例如:

package main 

import "fmt" 

func main() { 
     fmt.Println(「Hello」, 「world」) 
} 

我也建議通過順序this page的鏈接去。隨着他們的發展,他們逐漸引入更復雜的概念。

此外,雖然使用6g是編譯Go代碼的有效方法,但更常用的方法是使用go run來測試代碼,並使用go build進行編譯。有關更多信息,請參閱http://golang.org/cmd/go/

我希望有幫助。

+0

謝謝你的回答!但我在做跑步和跑步,沒有成功。它表示該命令無法識別。沒有命令。我該怎麼辦? – Javittoxs

+0

您尚未將$ GOROOT添加到您的系統$ PATH中。看看http://golang.org/doc/code.html。 – Intermernet

+0

難道你不是指'$ GOROOT/bin'而不是$ GOROOT? – tike