亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

給定一個可執行文件,我可以確定用于構建它的 GOOS 和 GOARCH 的值嗎?

給定一個可執行文件,我可以確定用于構建它的 GOOS 和 GOARCH 的值嗎?

Go
慕姐8265434 2021-12-20 10:12:12
標題幾乎總結了它。我怎樣才能確定 GOOS 和 GOARCH 的值是給 go 可執行文件的?
查看完整描述

1 回答

?
肥皂起泡泡

TA貢獻1829條經驗 獲得超6個贊

runtime.GOROOT() Go 1.10中更改的行為,有關詳細信息,請參閱Go 1.10 發行說明 # Runtime?,F在基本上runtime.GOROOT()檢查是否GOROOT設置了環境變量,如果是,則返回其值。如果不是,則返回GOROOT編譯時記錄的值。


查看runtime包裹:


GOARCH、GOOS、GOPATH 和 GOROOT 環境變量完善了 Go 環境變量的設置。它們影響 Go 程序的構建(參見https://golang.org/cmd/go和https://golang.org/pkg/go/build)。GOARCH、GOOS 和 GOROOT 在編譯時被記錄下來,并由該包中的常量或函數提供,但它們不影響運行時系統的執行。


可在此處找到GOARCH和的可能組合列表GOOS:https : //golang.org/doc/install/source#environment


所以你要找的是runtime包中的常量:


runtime.GOOS

runtime.GOARCH

它們將準確包含構建應用程序時存在的值。


例如看這個簡單的應用程序:


func main() {

    fmt.Println(runtime.GOOS)

    fmt.Println(runtime.GOARCH)

}

讓我們說GOOS=windows和GOARCH=amd64。運行它go run xx.go會打?。?/p>


windows

amd64

從中構建一個exe(例如go build)。運行 exe 具有相同的輸出。


現在更改GOARCH為386. 如果您使用go run(或構建一個 exe 并運行它)運行它,它將打?。?/p>


windows

386

如果你運行之前構建的 exe,它仍然會打?。?/p>


windows

amd64


查看完整回答
反對 回復 2021-12-20
  • 1 回答
  • 0 關注
  • 184 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號