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等

1
2
3
4
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

 

posted @   arun_python  阅读(1139)  评论(0编辑  收藏  举报
编辑推荐:
· 如何在 .NET 中 使用 ANTLR4
· 后端思维之高并发处理方案
· 理解Rust引用及其生命周期标识(下)
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
阅读排行:
· 后端思维之高并发处理方案
· 千万级大表的优化技巧
· 想让你多爱自己一些的开源计时器
· 10年+ .NET Coder 心语 ── 继承的思维:从思维模式到架构设计的深度解析
· Cursor预测程序员行业倒计时:CTO应做好50%裁员计划
点击右上角即可分享
微信分享提示