如何用Go语言编译程序?

I'm walking the first steps with Go language and I'm trying to install it in Debian Squeeze. I follow the step of downloading the source code and then, I did this on my terminal:

cd $GOROOT/src
./all.bash

At the end, it says this:

# 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

So, the book says that I need to do some tests and compile it with 6g. But I try it this way:

Compile this first Go-program with: 6g test.go This compiles to a file: test.6 which is linked with the command: 6l test.6 This produces the executable named: 6.out which executes with the command: ./6.out and produces the output: Hello, world

But nothing works, my code is:

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

So, I do not know what more to do... I do know now the name of my compiler, so I have no idea how to compile this in Debian... If you please, give a hand with this... I would be really thankfully to you!

It looks like you are following instructions from:

The Way to Go: A Thorough Introduction to the Go Programming Language By Ivo Balbaert. Section 2.3 Installing Go on a Linux system

These instructions are out of date. They use an obsolete release of Go, release 0.60. You have installed Go release 1.1.1.

For up-to-date instructions see Installing Go from source

Also, when you copy programs from the book, the book uses “ (left double quotation mark) and ” (right double quotation mark) in the code examples. Go expects " (quotation mark).

Write the test.go Go program as:

package main

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

When you installed Go, it told you it "Installed commands in /root/go/bin." You need to have /root/go/bin in your $PATH so that it can find (recognize) the Go commands.

From the directory which contains the test.go file, run

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

If this fails, what output do you get?

It looks like you've successfully installed Go from source, but you should really work your way through the Go Tour which will provide an introduction to the concepts of programming in Go.

The code you provided is missing a few sections. You need to import the "fmt" library, and then call any functions in it by prefacing them with fmt. .

For example:

package main

import "fmt"

func main() {
         fmt.Println(“Hello”, “world”)
}

I'd also recommend going through the links on this page in order. They gradually introduce more complex concepts as they go along.

Also, although using 6g is a valid way of compiling Go code, it's more usual to test code using go run, and to compile using go build. See http://golang.org/cmd/go/ for more info.

I hope that helps.

Here is the official download site: GO / Downloads.

After clicking on the appropriate file for your system, you will redirect to the page with instructions on how to go through the installation process.

For Linux, macOS, and FreeBSD and in particular for Debian tarballs you should extract the archive into /usr/local (it will create a Go tree in /usr/local/go, typically these commands must be run as root or through sudo):

tar -C /usr/local -xzf go1.12.7.linux-amd64.tar.gz

and add this line at the end of the ~/.profile for your user:

PATH=$PATH:/usr/local/go/bin

For current terminal session you can also invoke this command:

export PATH=$PATH:/usr/local/go/bin