2013-06-27 3 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. Но я стараюсь это так:

транслируют это первый Go-программу: 6g test.go Это компилируется в файл: test.6 , который связан с командой: 6л test.6 Это производит исполняемый по имени: 6.out , который выполняет с помощью команды: ./6.out и производит вывод: Привет, мир

Но ничего не работает, мой код:

package main 
func main() { 
     println(“Hello”, “world”) 
} 

Так что, я не знаю, что еще нужно сделать ... Я знаю теперь имя o f мой компилятор, поэтому я понятия не имею, как скомпилировать это в Debian ... Если вы хотите, дайте руку с этим ... Я был бы очень благодарен вам!

+0

Вам не хватает 'import 'fmt", и это должно быть 'fmt.Println (...)'. Я запустил код go с 'go run file.go'. – squiguy

+0

Забудьте о '6g' и подобных инструментах. (Они использовались в основном до Go 1). Используйте команду ['go'] (http: //golang.go/cmd/go/). – Mostafa

ответ

6

Похоже, что вы следуете инструкциям из:

путь: полное введение в язык программирования Go Иво Balbaert. Раздел 2.3 Установка Перейти к системе Linux

Данные инструкции устарели. Они используют устаревший выпуск Go, выпуск 0.60. Вы установили версию Go 1.1.1.

Для уточненных инструкций см Installing Go from source

Кроме того, при копировании программ из книги, книга использует «(левую двойную кавычку) и» (правая двойная кавычку) в примерах кода. Go ожидает "(кавычка).

Написать test.go программа Go, как:

package main 

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

При установке Go, он говорил, что это "Installed commands in /root/go/bin." Вы должны иметь /root/go/bin в своем $ PATH, чтобы он мог найти (распознать) команды 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

Смежные вопросы