go在Linux上編譯Windows執行檔案

來源:互聯網
上載者:User

標籤:產生   ros   建議   led   執行   str   lang   .bat   Go語言   

參考:http://studygolang.com/topics/21

(1)首先進入go/src 源碼所在目錄,執行如下命令建立目標平台所需的包和工具檔案。

$ cd /usr/local/go/src
$ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 ./make.bash

如果是 Windows 則修改 GOOS 即可。
$ CGO_ENABLED=0 GOOS=windows GOARCH=amd64 ./make.bash
----------------------------------------------------------------------------
此處可能報錯:
##### Building Go bootstrap tool.
cmd/dist
ERROR: $GOROOT_BOOTSTRAP must not be set to $GOROOT
Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4.

解決方案:
將當前的go複製一份
#cp -rf go go1.4
----------------------------------------------------------------------------


(2) 現在可以編譯 Linux 和 Windows 平台所需的執行檔案了。

$ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
$ CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build

不過該方式暫時不支援 CGO。

http://solovyov.net/en/2012/03/09/cross-compiling-go/

以上假定是64位架構,32位,修改GOARCH為386

說明:
這裡並不是重新編譯Go,因為安裝Go的時候,只是編譯了本地系統需要的東西;而需要跨平台交叉編譯,需要在Go中增加對其他平台的支援。所以,有 ./make.bash 這麼一個過程

交叉編譯問題補充:

首先,建議安裝Go語言通過源碼安裝,否則可能沒有make.bash或make.bat程式。

之所以需要執行上面的這些步驟,是因為安裝Go語言時,一些工具和平台相關的代碼並沒有產生,執行上面的步驟,並不是重新安裝Go語言,而是產生交叉編譯(目標平台)需要的工具和檔案。這些只是在第一次交叉編譯的時候做。之後就不需要了。

為了更快的編譯,可以

./make.bash --no-clean

go在Linux上編譯Windows執行檔案

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.