Go语言的编译和运行

Go语言是编译型的静态语言(和C语言一样),所以在运行Go语言程序之前,先要将其编译成二进制的可执行文件。

可以通过Go语言提供的go build或者go run命令对Go语言程序进行编译:

  • go build命令可以将Go语言程序代码编译成二进制的可执行文件,但是需要我们手动运行该二进制文件;
  • go run命令则更加方便,它会在编译后直接运行Go语言程序,编译过程中会产生一个临时文件,但不会生成可执行文件,这个特点很适合用来调试程序。

下面就来演示一下,如何运行我们上一节中编写的Go语言程序。

1. go build 命令

go build命令用来启动编译,它可以将Go语言程序与相关依赖编译成一个可执行文件,其语法格式如下。

1
go build filename

其中 fileName 为所需要的参数,可以是一个或者多个 Go 源文件名(当有多个参数时需要使用空格将两个相邻的参数隔开),也可以省略不写。

使用 go build 命令进行编译时,不同参数的执行结果也是不同的。

1.1. 当参数不为空时

  • 如果fileName为同一main包下的所有源文件名(可能有一个或者多个),编译器将生成一个与第一个fileName同名的可执行文件。如执行go build abc.go def.go ...会生成一个abc.exe文件(在Windows系统下);

  • 如果fileName为非main包下的源文件名,编译器将只对该包进行语法检查,不生成可执行文件。

1.2. 当参数为空时

  • 如果当前目录下存在main包,则会生成一个与当前目录名同名的“目录名.exe”可执行文件。如在 hello 目录中执行go build命令时,会生成 hello.exe文件(在Windows系统下);
  • 如果不存在main包,则只对当前目录下的程序源码进行语法检查,不会生成可执行文件。

2. go run 命令

除了使用go build命令外,Go语言还为我们提供了go run命令。go run命令将编译和执行指令合二为一,会在编译之后立即执行Go语言程序,但是不会生成可执行文件。

go run命令的语法格式如下:

1
go run fileName

其中fileName为所需要的参数,参数必须是同一main包下的所有源文件名,并且不能为空。

参考资料

[1] http://c.biancheng.net/view/6046.html