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
- 1 回答
- 0 關注
- 184 瀏覽
添加回答
舉報