[golang]建立 linux 執行檔
要在 Windows 上編譯 Go 程式並生成 Linux 可執行檔 (ELF),可以使用 GOOS=linux 和 GOARCH 環境變數來進行交叉編譯。
1. 交叉編譯 Linux 可執行檔
請打開 Windows cmd 或 PowerShell,然後執行:
這將會產生一個 Linux 64 位元 可執行檔 myapp-linux。
其他架構
如果你的 Linux 目標平台不同,你可能需要調整 GOARCH:
| 平台 | 指令 |
|---|---|
| 64 位元 Linux | GOOS=linux GOARCH=amd64 go build -o myapp-linux |
| 32 位元 Linux | GOOS=linux GOARCH=386 go build -o myapp-linux |
| ARM 64 (樹莓派) | GOOS=linux GOARCH=arm64 go build -o myapp-linux |
2. 加入靜態編譯(避免 Linux 缺少 glibc)
有些 Linux 伺服器(如 Alpine)使用 musl 而非 glibc,導致執行檔無法運行。可以使用 CGO_ENABLED=0 來編譯純靜態執行檔:
3. 確保編譯後的執行檔可在 Linux 運行
(1) 使用 file 指令檢查檔案類型
在 Linux 上執行:
如果正確編譯,應該會顯示:
(2) 賦予執行權限
4. 直接從 Windows 交叉編譯並部署到 Linux
如果你要將檔案上傳到 Linux,可以使用 scp 或者 rsync:
然後在 Linux 上執行:
這樣你就能在 Windows 上成功編譯並運行 Go Linux 執行檔了!
留言
張貼留言