go編譯中常用的xgo和upx工具詳解


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

  1. 版本

    • 原始版本,不支持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⁣ 會報錯,提示你用上面的命令
  2. 依賴

    • 不管何種版本的xgo都依賴於docker,所以你的電腦一定要在docker
    • 可以手動pull相關鏡像,例如,docker pull techknowlogick/xgo:latest
    • 如果要的鏡像不存在,xgo命令會自動執行docker的pull命令去安裝對應的鏡像
  3. 命令

    • -h 顯示幫助

    • -go 指定go的版本,需要下載對應版本的docker鏡像,非常大平均8G

    • -pkg 指定程序編譯的入口

    • -out 指定編譯后的名字

    • 輸出的目錄,目前測試只能用“.”,即當前目錄生成

    • -v 顯示編譯包的詳細

    • -targets 生成目標環境的包,多個的用','分開,*可以生成多個芯片類型的包

      • --targets=linux/amd64,darwin/amd64,darwin/arm64,windows/*
        
  4. 參考文檔

二、 二進制文件壓縮工具upx

  1. go生成的二進制文件,可能非常大,上傳服務器什么非常嗎
  2. upx可以有效壓縮二進制文件
  3. 安裝方法
    • Mac brew install upx
    • centos yum install upx -y
    • Debian apt install upx
  4. 使用方法
    • upx 二進制文件
    • 壓縮后的文件會直接替換原文件,一般都能減小40%


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM