Go 打包生成二进制文件
环境说明
- 开发环境:mac
- go 1.16.2
- 生产环境:Ubuntu 20.04.1 LTS
步骤说明
go build
$ go build [-o output] [-i] [build flags] [packages]
-o 参数可以指定输出目录与打包后的文件名,例:$ go build -o gorse main.go
进入main.go文件目录进行
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
等待一会,可以看到目录中生成了main二进制文件
axin @ AxindeMacBook-Pro in ~/workspace/goProject/gorse/cmd/gorse-master on git:release-0.2 x [11:54:38] |
Windows平台打包命令
set CGO_ENABLED=0 |
注:
- CGO_ENABLED 表示不使用cgo
- GOOS 表示目标平台系统(Windows,linux,darwin「mac os」等等)
- GOARCH 表示目标系统架构(arm arm64 386 amd64 等等)
注意事项
如果一个目录有多个go文件,打包命令使用
go build .
go build main.go
它只编译 main.go
执行程序
go run main.go
一个文件夹下有多个go程序,每个都含有main函数
go run 指定的go程序名
go build 文件名
执行程序
上传二进制文件到服务器 & 赋予可执行权限
chmod +x ./main 或 chmod 773 ./main
运行 ./main
或 nohup ./main >runing.log 2>&1 &
2>&1
解释:
将标准错误 2 重定向到标准输出 &1 ,标准输出 &1 再被重定向输入到 runing.log 文件中。
0 – stdin (standard input,标准输入)
1 – stdout (standard output,标准输出)
2 – stderr (standard error,标准错误输出)
& 解释:
后台运行
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Axinの博客!
评论