天天看點

跨平台編譯

跨平台編譯

目錄

Windows編譯Linux可執行檔案

Windows編譯Mac可執行檔案

Mac編譯Linux可執行檔案

Mac編譯Windows可執行檔案

Linux編譯Mac可執行檔案

Linux編譯Windows可執行檔案

基本指令介紹build 和 run 指令

get 指令

預設我們<code>go build</code>的可執行檔案都是目前作業系統可執行的檔案,如果我想在windows下編譯一個linux下可執行檔案,那需要怎麼做呢?

如果我想在Windows下編譯一個Linux下可執行檔案,那需要怎麼做呢?隻需要在編譯時指定目标作業系統的平台和處理器架構即可。

注意:無論你在Windows電腦上使用VsCode編輯器還是Goland編輯器,都要注意你使用的終端類型,因為不同的終端下指令不一樣!!!目前的Windows通常預設使用的是<code>PowerShell</code>終端。

如果你的<code>Windows</code>使用的是<code>cmd</code>,那麼按如下方式指定環境變量。

如果你的<code>Windows</code>使用的是<code>PowerShell</code>終端,那麼設定環境變量的文法為

在你的<code>Windows</code>終端下執行完上述指令後,再執行下面的指令,得到的就是能夠在Linux平台運作的可執行檔案了。

Windows下編譯Mac平台64位可執行程式:

cmd終端下執行:

PowerShell終端下執行:

Mac電腦編譯得到Linux平台64位可執行程式:

Mac電腦編譯得到Windows平台64位可執行程式:

Linux平台下編譯Mac平台64位可執行程式:

Linux平台下編譯Windows平台64位可執行程式:

直接在終端中輸入 <code>go help</code> 即可顯示所有的 go 指令以及相應指令功能簡介,主要有下面這些:

build: 編譯包和依賴

clean: 移除對象檔案

doc: 顯示包或者符号的文檔

env: 列印go的環境資訊

bug: 啟動錯誤報告

fix: 運作go tool fix

fmt: 運作gofmt進行格式化

generate: 從processing source生成go檔案

get: 下載下傳并安裝包和依賴

install: 編譯并安裝包和依賴

list: 列出包

run: 編譯并運作go程式

test: 運作測試

tool: 運作go提供的工具

version: 顯示go的版本

vet: 運作go tool vet

就像其他靜态類型語言一樣,要執行 go 程式,需要先編譯,然後在執行産生的可執行檔案。<code>go build</code> 指令就是用來編譯 go程式生成可執行檔案的。但并不是是以的 go 程式都可以編譯生成可執行檔案的, 要生成可執行檔案,go程式需要滿足兩個條件:

該go程式需要屬于main包

在main包中必須還得包含main函數

也就是說go程式的入口就是 <code>main.main</code>, 即main包下的main函數, 例子(test.go):

編譯hello.go,然後運作可執行程式:

上面就是 go build 的基本用法,另外如果使用 go build 編譯的不是一個可執行程式,而是一個包,那麼将不會生成可執行檔案。

而 <code>go run</code> 指令可以将上面兩步并為一步執行(不會産生中間檔案)。

上面兩個指令都是在開發中非常常用的。

此外 go clean 指令,可以用于将清除産生的可執行程式:

這個指令同樣也是很常用的,我們可以使用它來下載下傳并安裝第三方包, 使用方式:

從指定源上面下載下傳或者更新指定的代碼和依賴,并對他們進行編譯和安裝,例如我們想使用 beego 來開發web應用,我們首先就需要擷取 beego:

這條指令将會自動下載下傳安裝 beego 以及它的依賴,然後我們就可以使用下面的方式使用:

在當下的階段,必将由程式員來主導,甚至比以往更甚。

繼續閱讀