3.6. 编写程序

以file.go代码为例,用以下命令编译:

  $ 6g file.go

6g是针对amd64指令的编译器,它的输出文件为 file.6。其中 ‘6’ 表示文件是 amd64指令的输出文件。 如果是386和arm 处理器,后缀则为 85。 也就是说,如果你用的是386处理器,那么应该用8g命令编译, 输出的文件为file.8。

然后用以下命令连接:

  $ 6l file.6

运行程序:

  $ ./6.out

一个完整的例子:

  $ cat >hello.go <<EOF
  package main

  import "fmt"

  func main() {
          fmt.Printf("hello, world\n")
  }
  EOF
  $ 6g hello.go
  $ 6l hello.6
  $ ./6.out
  hello, world
  $

在连接的时候,没有必要列出hello.6引用的包(这里用到了fmt包)。 连接器(这里是6l)会自动从hello.6文件获取包的引用信息。

如果是编译更复杂的过程,那么可能需要使用Makefile。相关的例子可以 参考 $GOROOT/src/cmd/godoc/Makefile$GOROOT/src/pkg/*/Makefile