004_如何在mac编译在线上服务器运行go程序
一、下面是我的目录结构

二、Golang 交叉编译跨平台的可执行程序(Mac、Linux、Windows)
notice:
<1>Golang是静态编译的,编译打包之后基本就不会再对其他类库有依赖了,所以会比较大
<2>交叉编译依赖下面几个环境变量:
$GOARCH 目标平台(编译后的目标平台)的处理器架构(386、amd64、arm)
$GOOS 目标平台(编译后的目标平台)的操作系统(darwin、freebsd、linux、windows)
<3>这里386是一个很大的坑,这里是要运行这个打包后程序的平台。如果是linux需要你用 uname -a 来查看你运行的linux系统环境。常见的环境一般有 amd64,i386等
cd src GOOS=linux GOARCH=386 go build -ldflags "-w -s" -o zktest #选择你要执行的系统平台的环境,-ldflags "-w -s" 优化编译后执行的二进制包的大小,不加原来为3M,添加这个编译参数后为1.6M [root@hostname /tmp]# ./zktest -host 127.0.0.1 -port 2181 -c 100 -n 10 -path /xxx #直接执行即可,不需要任何依赖
Reference:
https://www.jianshu.com/p/cd3c766b893c #优化参考
https://www.jianshu.com/p/bfaba9b6d46d #平台参数选择参考
https://www.jisec.com/application-development/753.html #编译参数解释
https://studygolang.com/articles/5989

浙公网安备 33010602011771号