golang 跨平台交叉编译多平台软件
2018年8月17日
golang开发的东西天生就有跨平台的功能!这个是golang的一个优势!
golang中跨平台涉及到两个非常重要的变量:GOARCH和GOOS,自己手动弄,编辑这两个变量就行,一个代表平台类型,列入adm64,386等,一个代表是什么系统例如windows,linux,darwin!具体自己百度,这里介绍一个工具gox
gox是为golang多平台编译打包而生的一个工具,可以为golang实现多平台打包!
1 |
github.com/mitchellh/gox 这个是地址! |
看命令有那些!
如果直接输入gox.exe(window上),会自动编译支持的所有平台!
是不是支持很多,这里我编译的时候,遇到了一个问题,我引用了一个包,boltdb,这个不支持很多平台,导致很多非主流平台无法编译,所以,要编译多平台,还得需要你使用的类库中也要支持多平台!
看看常用平台的编译:ldflags这个参数是去除一些调试信息的,可以减少编译后的体积
1 |
gox.exe -osarch="windows/amd64" -output="build/windows" -ldflags="-s -w" |
1 |
gox.exe -osarch="darwin/amd64" -output="build/osx" -ldflags="-s -w" |
1 |
gox.exe -osarch="linux/amd64" -output="build/linux" -ldflags="-s -w" |