標籤:
作用:比如你手頭只有Mac系統,而你的使用者有Linux和Windows的,他們也想用,你可以通過交叉編譯出Linux和Windows上的可執行檔給他們用
(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
(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
轉自:http://studygolang.com/topics/21
跨平台編譯Go程式(交叉編譯)