您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關如何編譯go語言程序,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
Go語言是編譯型的靜態語言(和C語言一樣),所以在運行Go語言程序之前,先要將其編譯成二進制的可執行文件。
可以通過Go語言提供的go build
或者go run
命令對Go語言程序進行編譯:
go build
命令可以將Go語言程序代碼編譯成二進制的可執行文件,但是需要我們手動運行該二進制文件;
go run
命令則更加方便,它會在編譯后直接運行Go語言程序,編譯過程中會產生一個臨時文件,但不會生成可執行文件,這個特點很適合用來調試程序。
我們可以直接使用 Windows 自帶的命令行工具(也叫 CMD 窗口或者命令提示符)來編譯Go語言程序。微軟后來對命令行工具進行了一次升級,并更名為 Powershell,power 是更加強大的意思。
打開命令行工具的方式多種多樣,下面列出了比較常用的兩種:
可以在開始菜單中打開命令行工具,然后 cd 到 Go 源文件所在的目錄。
也可以在 Go 源文件所在目錄的空白處按住 Shift 鍵并單擊鼠標右鍵,然后在彈出菜單中選擇“在此處打開命令行窗口”或者“在此處打開 Powershell 窗口”,這樣會自動 cd 到 Go 源文件所在的目錄,如下圖所示。這種方式更加方便,推薦大家使用。
提示:cd 是命令行工具的一個命令,用來改變當前所在的目錄,是 change directory 的縮寫。
go build 命令
go build命令用來啟動編譯,它可以將Go語言程序與相關依賴編譯成一個可執行文件,其語法格式如下。
go build fileName
其中 fileName 為所需要的參數,可以是一個或者多個 Go 源文件名(當有多個參數時需要使用空格將兩個相鄰的參數隔開),也可以省略不寫。
使用 go build 命令進行編譯時,不同參數的執行結果也是不同的。
1) 當參數不為空時
如果 fileName 為同一 main 包下的所有源文件名(可能有一個或者多個),編譯器將生成一個與第一個 fileName 同名的可執行文件(如執行go build abc.go def.go ...會生成一個 abc.exe 文件);如果 fileName 為非 main 包下的源文件名,編譯器將只對該包進行語法檢查,不生成可執行文件。
2) 當參數為空時
如果當前目錄下存在 main 包,則會生成一個與當前目錄名同名的“目錄名.exe”可執行文件(如在 hello 目錄中執行go build命令時,會生成 hello.exe 文件);如果不存在 main 包,則只對當前目錄下的程序源碼進行語法檢查,不會生成可執行文件。
使用go build
命令對我們上一節編寫的程序進行編譯,運行結果如下所示:
D:\code> go build .\demo.go D:\code> .\demo.exe Hello World!
其中D:\code>
對應的是當前目錄,也就是 D 盤下的 code 文件夾,它是命令行工具自動添加的,不屬于編譯命令的一部分。
第 1 行go build
命令后面的參數中,.\
表示當前目錄。在Windows 系統中,當前目錄使用.\
表示;在類 Unix 系統(例如 Linux、MacOS 等)中,當前目錄使用./
表示。
注意,這里的go build命令中
.\
可以省略不寫,不會影響編譯。
另外,go build
命令只有在執行出錯的情況下才會有返回信息,執行成功的話是沒有返回信息的,但是會在當前目錄生成一個與 main 包文件同名的 .exe
可執行文件,如下圖所示。
第 2 行中的.\demo.exe
表示執行當前目錄下的 demo.exe 程序。
第 3 行則是 demo.exe 程序的運行結果。
go run 命令
除了使用go build
命令外,Go語言還為我們提供了go run
命令,go run
命令將編譯和執行指令合二為一,會在編譯之后立即執行Go語言程序,但是不會生成可執行文件。
go run命令的語法格式如下:
go run fileName
其中 fileName
為所需要的參數,參數必須是同一 main 包下的所有源文件名,并且不能為空。
使用go run
命令對我們上一節編寫的程序進行編譯,運行結果如下所示:
D:\code> go run demo.go Hello World!
以上就是如何編譯go語言程序,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。