go不同平台编译

cannot execute binary file exec format error

是因为mac和ubuntu的二进制格式不一致

问题

Go是一门编译型语言,所以在不同平台上,需要编译生成不同格式的二进制包。
由于Go 1.5对跨平台编译有了一些改进,包括统一了编译器、链接器等。
编译时候只需要指定两个参数:GOOS和GOARCH即可。

编译到 linux 64bit

$ GOOS=linux GOARCH=amd64 go build

或者可以使用 -o 选项指定生成二进制文件名字

$ GOOS=linux GOARCH=amd64 go build -o app.linux

编译到 linux 32bit

$ GOOS=linux GOARCH=386 go build

编译到 windows 64bit

$ GOOS=windows GOARCH=amd64 go build

编译到 windows 32bit

$ GOOS=windows GOARCH=386 go build

编译到 Mac OS X 64bit

$ GOOS=darwin GOARCH=amd64 go build

在不同的平台编写快捷生成脚本的时候也是不一样的

linux sh
GOARCH=amd64 GOOS=linux go build -o myweb main.go

windows bat

set GOARCH=amd64
set GOOS=linux
go build -o myweb main.go
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。