我正在編寫的軟件將在x86和x86-64體系結構中的Windows,Mac和Linux系統中進行部分廣泛部署。每當我在我的Mac和Linux系統上設置go編譯器時,我只能編譯6g。在Windows上,我只使用預製的實驗二進制文件,它使用8g。如何爲Go編譯8g和6g Go編譯器
當我開始設置構建服務器時,我認爲我還需要構建8g,這樣我才能生成32位構建。如何設置8g,特別是在Mac上(因爲它們可以是x86或x64,具體取決於它們的年齡)?
我正在編寫的軟件將在x86和x86-64體系結構中的Windows,Mac和Linux系統中進行部分廣泛部署。每當我在我的Mac和Linux系統上設置go編譯器時,我只能編譯6g。在Windows上,我只使用預製的實驗二進制文件,它使用8g。如何爲Go編譯8g和6g Go編譯器
當我開始設置構建服務器時,我認爲我還需要構建8g,這樣我才能生成32位構建。如何設置8g,特別是在Mac上(因爲它們可以是x86或x64,具體取決於它們的年齡)?
正如另一張海報所說,使用GOARCH
。他沒有說的是你不需要多個目錄。
運行all.bash
兩次,相同GOROOT
:
GOARCH=amd64 ./all.bash
GOARCH=386 ./all.bash
當你建立的東西與gomake
設立GOARCH
如果默認不適合你
GOARCH=386 gomake
可惜goinstall
不接受GOARCH
還。
請注意,gc編譯器總是交叉編譯。一旦您擁有了所需架構的編譯器,請設置GOOS
並在$GOROOT/src/pkg
中構建軟件包,那麼您應該能夠構建針對任何操作系統或體系結構的軟件。
GOARCH=386 GOOS=windows gomake
你必須在all.bash
構建腳本來設置環境變量GOARCH
到386
,而不是可能自動選擇amd64
。有關詳細信息,請參閱Go文檔中的environment variables。
那麼,如果你想要構建/安裝32位和64位二進制文件呢?建立他們在不同的目錄,並改變建設之間的變量?我想這會起作用。聽起來像是劇本的好機會。 – Nate
非常好,那麼像gofix,gofmt這樣的所有「幫手」命令會發生什麼?他們是否用我使用的最後一個GOARCH來構建?所以如果我在x64機器上開發,我可能想先編譯386,然後切換到amd64,這樣我就有兩個編譯器,但我的工具都是64位。 – Nate
是的,每次都會構建幫助工具,所以他們將擁有GOARCH體系結構,如果您想要64位輔助工具,您可能希望先構建386,稍後再構建amd64。 –
注意這個答案是**很**過時。沒有'gomake'或'goinstall'了。 'go build'和'go install'句柄'GOOS'和'GOARCH'就好了,不需要多個目錄(除了'go install'會爲你創建的目錄以外)。 –