xgo 一键编译多平台

最后更新于:2022-04-02 02:52:21

[TOC] > [github](https://github.com/techknowlogick/xgo#cgo-dependencies) ## 概述 此仓库为 fork,但是支持 go mod,故推荐 ## 安装 ``` // 安装镜像 docker pull techknowlogick/xgo:latest // 安装客户执行命令 go get src.techknowlogick.com/xgo ``` ## 语法 ``` xgo github.com/project-iris/iris -v:在编译时打印软件包的名称 -x:在编译过程中打印构建命令 -go:指定go版本如: -go go-1.13.2 -out:指定包前缀 bigant-v0.3.2 -> iris-v0.3.2-darwin-10.6-386 --branch:指定项目分支 release-branch.go1.4 --pkg:指定路口文件所在路径 ``` ## 教程 ### 通过url 编译 默认编译所有版本 ``` $ xgo github.com/project-iris/iris $ ls -al -rwxr-xr-x 1 root root 6776500 Nov 24 16:44 iris-darwin-10.6-386 -rwxr-xr-x 1 root root 8755532 Nov 24 16:44 iris-darwin-10.6-amd64 -rwxr-xr-x 1 root root 10135248 Nov 24 16:44 iris-linux-386 ... ``` ### 指定 golang 版本 ``` xgo -go go-1.13.2 github.com/project-iris/iri latest 将使用最新的Go版本(这是默认设置) go-1.13.x 将使用特定Go版本的最新发行版 ``` ### 指定前缀 ``` xgo -out iris-v0.3.2 github.com/project-iris/iris ... $ ls -al -rwxr-xr-x 1 root root 6776500 Nov 24 16:44 iris-v0.3.2-darwin-10.6-386 -rwxr-xr-x 1 root root 8755532 Nov 24 16:44 iris-v0.3.2-darwin-10.6-amd64 ... ``` ### 选择项目分支 ``` $ xgo --branch release-branch.go1.4 golang.org/x/tools/cmd/goimports ... $ ls -al -rwxr-xr-x 1 root root 4139868 Nov 24 16:40 goimports-darwin-10.6-386 -rwxr-xr-x 1 root root 5186720 Nov 24 16:40 goimports-darwin-10.6-amd64 ... ``` ### 指定入门文件所在路径 ``` $ xgo --pkg cmd/goimports golang.org/x/tools ... $ ls -al -rwxr-xr-x 1 root root 4164448 Nov 24 16:38 goimports-darwin-10.6-386 -rwxr-xr-x 1 root root 5223584 Nov 24 16:38 goimports-darwin-10.6-amd64 ... ``` ### 指定构建平台 默认是所有平台 ``` --targets=linux/arm:仅构建ARMv5 Linux二进制文件(arm-6/ arm-7允许) --targets=windows/*,darwin/*:构建所有Windows和OSX二进制文件 --targets=*/arm:为所有平台构建ARM二进制文件 --targets=*/*:构建所有支持的目标(默认) 支持的目标是: 平台:darwin,linux,windows Achitectures: ,386,amd64,arm-5,arm-6,arm-7,arm64,mips,,mipslemips64mips64le ``` ### 平台版本 默认只是平台的最低版本,但是有些需要高版本的可以指定版本 ``` --targets=darwin-10.9/*:交叉编译到Mac OS X Mavericks --targets=windows-6.0/*:交叉编译到Windows Vista ```
';