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
包下的所有源文件名,并且不能为空。