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
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何在 .NET 中 使用 ANTLR4
· 后端思维之高并发处理方案
· 理解Rust引用及其生命周期标识(下)
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 后端思维之高并发处理方案
· 千万级大表的优化技巧
· 想让你多爱自己一些的开源计时器
· 10年+ .NET Coder 心语 ── 继承的思维:从思维模式到架构设计的深度解析
· Cursor预测程序员行业倒计时:CTO应做好50%裁员计划