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

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

交叉編譯 Go

交叉編譯 Go

Go
喵喵時光機 2021-09-09 21:38:41
我正在嘗試在我的 macbook 上交叉編譯 Go for ubuntu linux x86_64。我已按照此處概述的說明進行操作,但在運行時go-linux-amd64 build收到以下消息go build runtime: linux/amd64 must be bootstrapped using make.bash。對此的任何幫助將不勝感激。
查看完整描述

3 回答

?
德瑪西亞99

TA貢獻1770條經驗 獲得超3個贊

它說您需要做的是為 linux-amd64 重建庫和運行時。你可以這樣做:

  1. 找到你的 Go 安裝的根目錄(如果你不知道它在哪里,運行which go可能會有所幫助 - 二進制文件通常與其他源代碼一起安裝)。

  2. cd進入src目錄

  3. 運行GOOS=linux GOARCH=amd64 ./make.bash --no-clean(或者GOOS=linux GOARCH=amd64 bash make.bash --no-clean如果make.bash不可執行)。這將使用指定的操作系統和架構重建庫和運行時。

完成此操作后,您可以使用GOOS=linux GOARCH=amd64 go build. 對于其他體系結構和操作系統,您可以遵循相同的說明。

編輯 (08/13/15):

從 Go 1.5 開始,交叉編譯容易得多。由于運行時是用 Go 編寫的,因此無需進行任何設置即可交叉編譯。您現在可以GOOS=<os> GOARCH=<arch> go build從 vanilla Go 安裝運行,它會起作用。

但是,有一個例外。如果您使用的是 cgo,您仍然需要提前設置。并且您需要通過將CGO_ENABLED環境變量設置為1. 所以,準確地說:

  1. cd進入src你的 Go 安裝目錄(參見上面的說明)。

  2. 跑 CGO_ENABLED=1 GOOS=<os> GOARCH=<arch> ./make.bash --no-clean

  3. 運行CGO_ENABLED=1 go build以構建您的項目。CGO_ENABLED=1即使在編譯時指定也很重要。


查看完整回答
反對 回復 2021-09-09
?
ITMISS

TA貢獻1871條經驗 獲得超8個贊

你必須 cd %goroot%/src/,find make.bash

然后執行 ./make.bash

執行你的命令。嘗試一下!


查看完整回答
反對 回復 2021-09-09
  • 3 回答
  • 0 關注
  • 218 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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