加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

golang 交叉编译,跨平台

发布时间:2020-12-16 19:00:37 所属栏目:大数据 来源:网络整理
导读:因为我的本地开发环境是os x 但服务器是linux,所以需要编译linux用的go程序,方法如下: ###各平台的GOOS和GOARCH参考 OS ARCH OS version linux 386 / amd64 / arm = Linux 2.6 darwin 386 / amd64 OS X (Snow Leopard + Lion) freebsd 386 / amd64 = Free

因为我的本地开发环境是os x 但服务器是linux,所以需要编译linux用的go程序,方法如下:

###各平台的GOOS和GOARCH参考

OS ARCH OS version

linux 386 / amd64 / arm >= Linux 2.6

darwin 386 / amd64 OS X (Snow Leopard + Lion)

freebsd 386 / amd64 >= FreeBSD 7

windows 386 / amd64 >= Windows 2000

$ cd /usr/local/go/src $ sudo CGO_ENABLED=0 GOOS=linux GOARCH=amd64 ./make.bash

这里并不是重新编译Go,因为安装Go的时候,只是编译了本地系统需要的东西;而需要跨平台交叉编译,需要在Go中增加对其他平台的支持。所以,有 ./make.bash 这么一个过程。

执行结果类似如下:

sudo CGO_ENABLED=0 GOOS=linux GOARCH=amd64 ./make.bash Password: ###Building C bootstrap tool. cmd/dist

###Building compilers and Go bootstrap tool for host,darwin/amd64. lib9 libbio libmach misc/pprof cmd/addr2line cmd/cov cmd/nm cmd/objdump cmd/pack cmd/prof cmd/cc …... pkg/text/template/parse pkg/text/template pkg/go/doc pkg/go/build cmd/go pkg/runtime (linux/amd64)

###Building packages and commands for host,darwin/amd64. runtime errors sync/atomic unicode unicode/utf8 math sync unicode/utf16 crypto/subtle io syscall ………. net/rpc/jsonrpc testing/iotest testing/quick

###Building packages and commands for linux/amd64. runtime errors sync/atomic unicode unicode/utf8 math sync unicode/utf16 …….. testing net/rpc/jsonrpc testing/iotest testing/quick


Installed Go for linux/amd64 in /usr/local/go Installed commands in /usr/local/go/bin

三、编译对应平台下的执行文件 到源代码目录下执行:

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build sina.go

不带前面参数的 go build 只是编译出开发环境适用的执行文件。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读