首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >go编译中常用的xgo和upx工具详解

go编译中常用的xgo和upx工具详解

作者头像
用户12023652
发布2026-07-29 09:32:48
发布2026-07-29 09:32:48
750
举报

go编译中常用的xgo和upx工具详解

  1. go自带跨平台编译功能
  2. mac/linux 执行命令:CGO_ENABLED=0 GOOS=linux/darwin GOARCH=amd64 go build filename.go -o outname
  3. windows 执行命令 SET CGO_ENABLED=0 SET GOOS=darwin SET GOARCH=amd64 go build filename.go

一、go的交叉编译工具xgo

版本

  • 原始版本,不支持go mod,github.com/karalabe/xgo
    • 安装go get github.com/karalabe/xgo
  • 支持go mod的版本, github.com/techknowlogick/xgo⁣
    • 注意安装要用,go get src.techknowlogick.com/xgo
    • go get github.com/techknowlogick/xgo⁣ 会报错,提示你用上面的命令

依赖

  • 不管何种版本的xgo都依赖于docker,所以你的电脑一定要在docker
  • 可以手动pull相关镜像,例如,docker pull techknowlogick/xgo:latest
  • 如果要的镜像不存在,xgo命令会自动执行docker的pull命令去安装对应的镜像

命令

-h 显示帮助

-go 指定go的版本,需要下载对应版本的docker镜像,非常大平均8G

-pkg 指定程序编译的入口

-out 指定编译后的名字

输出的目录,目前测试只能用“.”,即当前目录生成

-v 显示编译包的详细

-targets 生成目标环境的包,多个的用','分开,*可以生成多个芯片类型的包

代码语言:javascript
复制
--targets=linux/amd64,darwin/amd64,darwin/arm64,windows/*

二、 二进制文件压缩工具upx

  1. go生成的二进制文件,可能非常大,上传服务器什么非常吗
  2. upx可以有效压缩二进制文件
  3. 安装方法
    • Mac brew install upx
    • centos yum install upx -y
    • Debian apt install upx
  4. 使用方法
    • upx 二进制文件
    • 压缩后的文件会直接替换原文件,一般都能减小40%
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-10-21,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档