go version go1.22.1 windows/amd64
Windows 11 + amd64
x86_64 x86_64 GNU/Linux
---
序章
golang 支援 跨平臺,支援的方式 是 在一個平臺 編譯其它平臺的可執行程式。
本文 介紹 Windows 11(開發主機) 上 編譯 Linux(目標主機) 上的可執行程式。
#go build
開發主機 和 目標主機 的架構相同:x86_64
執行
檢視 go 環境變數:
> go env set GO111MODULE=on set GOHOSTARCH=amd64 set GOOS=windows …… |
修改其中的 GOOS 為 linux(全小寫),命令:
>go env -w GOOS="linux" |
執行編譯:
>go build |
編譯 成功,生成 web001 檔案——Linux 可執行的。
複製 web001 到 目標主機(scp 命令):
scp web001 username@iporhost:/target/directory |
成功複製過去後,web001 是 不可執行的,使用 chmod 修改許可權即可:
# chmod +x web001 |
執行&測試 web001:
# nohup ./web001 & |
# ps -ef | grep web root 439426 439378 0 20:31 pts/1 00:00:00 ./web001 |
web001 是一個 web程式,使用 curl 測試介面,成功,不再贅述。
改名
將 web001 改名為 app001,執行,成功。
就這麼簡單?
TODO 除了 amd64(x86_64)外,還支援那些架構呢?看了 go help build 命令的內容,應該還支援下面的 os+晶片架構 組合:
Supported only on linux/amd64, freebsd/amd64, darwin/amd64, darwin/arm64, windows/amd64, |
兩個 *asn 還提到了:linux/loong64(龍芯)。
還沒用過這些引數。
說明,介紹 GOOS、GOARCH 的 官方文件 今天看到過,但現在 找不到了。
命令小結
- >go env -w GOOS="linux"
>go build
>scp web001 username@iporhost:/target/directory - # chmod +x web001
# nohup ./web001 &
# ps -ef | grep web
# curl
---END---
本文連結:
https://www.cnblogs.com/luo630/p/18170501
ben釋出於部落格園
參考資料
1、go build 成不同環境的方法:mac、linux、windows
php-goland@瘋狂程式設計愛好者
已於 2022-10-10 17:20:11 修改
https://blog.csdn.net/qq_41672878/article/details/119410602
2、Win10系統下設定Go環境變數
https://www.cnblogs.com/yunfan1024/p/13497686.html
3、
ben釋出於部落格園
ben釋出於部落格園