Go | 如何將程式編譯與執行
💬簡介
在 Go 程式開發中,編譯與執行是將程式轉換為可執行檔並在電腦上執行的過程。Go 語言的編譯過程非常簡單,並且提供了快速高效的編譯與運行體驗。本篇文章將介紹如何將 Go 程式編譯並產生可執行檔,並講解在不同平台上的執行步驟。
圖片來源:Gophers (地鼠造型的原創者為 Renee French)
🔎 如何編譯與執行 Go 程式?
🖥️ 編譯並執行 Go 程式
Go 的編譯過程相對簡單,主要透過 go build
和 go run
兩個指令來編譯並執行程式。
📌 使用 go build
編譯程式
go build
會將 Go 程式編譯成可執行檔,並產生一個對應系統的可執行檔(Windows, macOS, Linux … 等)。例如:
- 創建一個簡單的 Go 程式
hello.go
:1
2
3
4
5
6
7package main
import "fmt"
func main() {
fmt.Println("Hello, Go!")
} - 在命令行中,進入程式所在的目錄,並執行以下指令來編譯程式:
1
go build hello.go
- 執行結果:
在命令行中,會看到一個名為hello
(在 Windows 上是hello.exe
)的可執行檔。執行這個檔案來運行程式:執行結果:1
./hello
1
Hello, Go!
📌 使用 go run
直接執行程式
go run
允許開發者直接編譯並執行 Go 程式,通常在開發過程中使用,以便快速測試程式。這樣,不需要先產生可執行檔,再執行。
在命令行中,直接使用以下指令:
1 | go run hello.go |
執行結果:
1 | Hello, Go! |
使用 go run
主要的好處是簡化開發過程,省略了產生可執行檔的步驟,對於小型程式或測試程式碼非常方便。
🚀 跨平台編譯
Go 語言支援跨平台編譯,能夠在一個平台上編譯程式並在其他平台上執行。這是 Go 的一大優勢,尤其適合開發需要在不同系統上運行的應用。
📌 編譯為 Windows 可執行檔(在 Linux 或 macOS 上)
可以通過設置 GOOS
和 GOARCH
環境變數來編譯適用於不同操作系統的程式。例如,在 Linux 系統上編譯一個 Windows 可執行檔:
1 | GOOS=windows GOARCH=amd64 go build hello.go |
這會產生適用於 Windows 的 hello.exe
檔案,可以在 Windows 上運行。
📌 編譯為 macOS 或 Linux 可執行檔(在 Windows 上)
同樣的,可以在 Windows 上編譯一個 Linux 或 macOS 可執行檔。例如,在 Windows 上編譯一個 Linux 可執行檔:
- AMD64
1
2
3$env:GOOS="linux"
$env:GOARCH="amd64"
go build hello.go - ARM64
1
2
3$env:GOOS="darwin"
$env:GOARCH="amd64"
go build hello.go
這樣產生的可執行檔可以在 macOS 或 Linux 上運行,而不需要額外安裝 Go 開發環境。
🛠️ 常見問題與解決方法
問題:
go build
沒有產生執行檔
解決方法:請確認程式中有main
函式,並且當前目錄有對應的.go
檔案。問題:編譯時出現錯誤提示
undefined: fmt.Println
解決方法:確認是否正確導入了fmt
套件,並且語法沒有錯誤。問題:執行可執行檔時顯示「permission denied」
解決方法:確認檔案的執行權限,並使用以下指令來賦予執行權限(Linux/macOS):1
chmod +x hello
🎯總結
Go 語言的編譯與執行過程非常簡單高效,無論是使用 go build
來產生可執行檔,還是使用 go run
來直接執行程式,都能快速測試和調試程式碼。此外,Go 提供了強大的跨平台編譯功能,使開發者能夠在不同平台間進行開發和部署,極大地提高了開發效率。
希望這篇文章能幫助更好地理解如何編譯並執行 Go 程式,並順利開始 Go 開發!
最後建議回顧一下 Go | 菜鳥教學 目錄,了解其章節內容。
註:以上參考了
Go