Go语言的工具链非常丰富,从获取源码、编译、文档、测试、性能分析,到源码格式化、源码提示、重构工具应有尽有。
1.go build
Go语言中使用go build命令将源码编译为可执行文件。
(1)go build无参数编译
在main包所在目录下使用go build命令进行编译,生成当前目录名的可执行文件。
(2)go build + 文件列表
编译同目录的多个源码文件时,可以在go build的后面提供多个文件名,go build会编译这些源码,输出可执行文件,格式如下:
go build file1.go file2.go ...
说明:此时编译完成以后生成的可执行文件的文件名是第一个文件的文件名,这里生成的可执行文件就是file1
也可以使用-o参数,指定输出可执行文件名:
go build -o myexec file1.go file2.go ...
(3)go build 编译时附加的参数
附加参数 | 备注 |
-v | 编译时显示包名 |
-p n | 开启并发编译,默认情况下该值为CPU逻辑核数 |
-a | 强制重新构建 |
-n | 打印编译时会用到的所有命令,但不真正执行 |
-x | 打印编译时会用到的所有命令 |
-race | 开启竞态检测 |
2.go run
go run命令会编译源码,并且直接执行源码的main()函数,不会在当前目录留下可执行文件。
go run不会在运行目录下生成任何文件,可执行文件被放在临时文件中被执行,工作目录被设置为当前目录。在go run的后部可以添加参数,这部分参数会作为代码可以接受的命令行输入提供给程序。
3.go install
go install 和go build类似,附加参数大多数都可以与go build通用。go install只是将编译的中间文件放在GOPATH的pkg目录下,已经固定地将编译结果放在GOPATH的bin目录下。
●go install 是建立在GOPATH上的,无法在独立的目录里使用go install
●GOPATH下的bin目录放置的是使用go install生成的可执行文件,可执行完文件的名称来自于编译的包名。
●go install输出目录始终为GOPATH下的bin目录,无法使用-o附加参数进行自定义
●GOPATH下的pkg目录放置的是编译期间的中间文件