go基础-20.部署
go项目的部署特别简单,编写完成之后,只需要执行go build即可打包为可执行文件
注意,这个操作是不同平台不一样的
windows下打包就是exe文件,linux下打包就是二进制文件
打包命令
go build
打当前目录下的main包,注意,只能有一个main函数的包
go build xxx.go
打当前目录下,xxx.go的包,这个包必须得是一个main包,不然没有效果
go build -o main.exe xxx.go
强制对输出的文件进行重命名
-o参数必须得在文件的前面
交叉编译
什么是交叉编译呢,就是在windows上,我开发的go程序,我也能打包为linux上的可执行程序
例如在windows平台,打linux的包
注意,执行set这个命令,一定得要是在cmd的命令行下,powershell是无效的
set CGO_ENABLED=0
set GOOS=linux
set GOARCH=amd64
go build -o main main.go
CGO_ENABLED : CGO 表示 golang 中的工具,CGO_ENABLED=0 表示 CGO 禁用,交叉编译中不能使用 CGO
GOOS : 环境变量用于指定目标操作系统,mac 对应 darwin,linux 对应 linux,windows 对应 windows ,还有其它的 freebsd、android 等
GOARCH
:环境变量用于指定处理器的类型,386 也称 x86
对应 32位操作系统、amd64
也称 x64 对应 64 位操作系统,arm
这种架构一般用于嵌入式开发。比如 Android
, iOS
, Win mobile
等
为了方便呢,可以在项目的根目录下写一个bat文件
这样就能快速构建了
然后放到linux服务器下,设置文件权限就可以直接运行了
chmod +x main
./main
再次注意啊,以后打包web项目的时候,配置文件和静态文件等这些非go程序,是要一起复制到目标服务器里面的
参考文档
go build命令 https://blog.csdn.net/wohu1104/article/details/106295007