下載/安裝

Windows-預設

  1. 20260623_InstallWindows01.avif
  2. 20260623_InstallWindows02.avif
  3. 20260623_InstallWindows03.avif
  4. 20260623_InstallWindows04.avif
  5. 20260623_InstallWindows05.avif

Windows-自訂安裝位址

  1. 下載 goX.XX.X.windows-amd64.zip 並解壓縮至自訂目錄。
  2. 設定環境變數:新增 PATH 環境變數,指向自訂目錄的 bin 目錄。
  3. VSCode 安裝 Go 擴充套件設定:
    1. 在 Go 擴充套件設定裡面找到 Go: Goroot 進行設定。
    2. 修改 "go.goroot": "自訂目錄",,完成後重新開啟 VSCode 即可。
      如:"go.goroot": "D:\\User\\Env\\go",

建立專案/環境部屬

初始化 Go Module

此部分類似 npm 的 package.json,將包含 Golang 版本以及本專案相關的套件版本統一管理。

  1. 確定專案資料夾
  2. 初始化專案:
    1. go mod init <專案名稱 (Module)>
    2. 此時會產生 go.mod 文件,包含了專案名稱、使用 Golang 版本。

VSCode 偵錯

  1. 建立 .vscode\launch.json
  2. launch.json 撰寫內容:
    .vscode/launch.json
    {
    	// 使用 IntelliSense 以得知可用的屬性。
    	// 暫留以檢視現有屬性的描述。
    	// 如需詳細資訊,請瀏覽: https://go.microsoft.com/fwlink/?linkid=830387
    	"version": "0.2.0",
    	"configurations": [
    		{
    			"name": "Launch Package",
    			"type": "go",
    			"request": "launch",
    			"mode": "auto",
    			"program": "${file}",
    			"console": "integratedTerminal"
    		}
    	]
    } 
  3. 即可於 VSCode 執行偵錯功能。

※備註:若更新 Golang 版本,可能導致 delve 版本不足,可使用 go install github.com/go-delve/delve/cmd/dlv@latest 將 delve 更新至最新版。

打包/部屬

在 Windows 上打包

  • 一般:go build -o <輸出檔案名稱>.exe <主要檔案>
  • 減少檔案大小:go build -ldflags="-s -w" -o <輸出檔案名稱>.exe <主要檔案>
    • -s:省略符號表。
    • -w:省略調適信息。
  • 進一步加殼壓縮:
    1. 下載並解壓縮 UPX
    2. 於解壓縮目錄使用指令 upx -9 <檔案> 壓縮
      • -9:最高壓縮率(1~9)

應用程式簽章

signtool sign /a /f mycert.pfx /fd sha256 /p <password> /tr http://timestamp.digicert.com /td sha256 <檔案名稱>

交叉編譯

環境設定

  1. 確定目前環境的 Golang 版本。
    • go version
  2. 確定目前環境的 Golang 支援的作業系統及架構。
    • go tool dist list
  3. 檢查目前環境變數。(可先記錄下來避免誤改)
    • go env
  4. 調整環境變數 GOOSGOARCH
    • set GOOS=<作業系統>
    • set GOARCH=<架構>
    1. 目標:
      1. Android:
        1. 確定目標環境:上網查詢或透過 adb 使用 adb shell getprop ro.product.cpu.abi 查詢。
        2. 規劃環境變數:set GOOS=androidset GOARCH=<架構>
          如(SONY Xperia 1V):GOARCH=arm64 GOOS=android CGO_ENABLED=0 GOARM=8
    2. 調整環境變數:
      • go env -w <環境變數名稱1>=<變數1> <環境變數名稱2>=<變數2> ...
        如:go env -w GOARCH=arm64 GOOS=android CGO_ENABLED=0 GOARM=8
    3. 打包/部屬
    4. 恢復環境變數:
      • go env -u <環境變數名稱1> <環境變數名稱2> ...
        如:go env -u GOARCH GOOS CGO_ENABLED GOARM

備註

在 Android 上 Termux 執行

  1. 將檔案存至 Android 裝置。(以下以內建儲存空間之 downloads 資料夾為例)
  2. 將檔案存放到 Termux 的 $PREFIX/bin 資料夾。
    • mv /sdcard/downloads/<檔案名稱> $PREFIX/bin/
  3. 設定檔案權限。
    • chmod +x $PREFIX/bin/<檔案名稱>
  4. 執行檔案。