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

 

posted @ 2018-06-22 08:48  arun_python  阅读(1161)  评论(0)    收藏  举报