新聞中心
Go語言是編譯型的靜態(tài)語言(和C語言一樣),所以在運(yùn)行Go語言程序之前,先要將其編譯成二進(jìn)制的可執(zhí)行文件。

創(chuàng)新互聯(lián)"三網(wǎng)合一"的企業(yè)建站思路。企業(yè)可建設(shè)擁有電腦版、微信版、手機(jī)版的企業(yè)網(wǎng)站。實(shí)現(xiàn)跨屏營銷,產(chǎn)品發(fā)布一步更新,電腦網(wǎng)絡(luò)+移動網(wǎng)絡(luò)一網(wǎng)打盡,滿足企業(yè)的營銷需求!創(chuàng)新互聯(lián)具備承接各種類型的成都網(wǎng)站建設(shè)、成都網(wǎng)站制作項(xiàng)目的能力。經(jīng)過十余年的努力的開拓,為不同行業(yè)的企事業(yè)單位提供了優(yōu)質(zhì)的服務(wù),并獲得了客戶的一致好評。
可以通過Go語言提供的go build或者go run命令對Go語言程序進(jìn)行編譯:
-
go build命令可以將Go語言程序代碼編譯成二進(jìn)制的可執(zhí)行文件,但是需要我們手動運(yùn)行該二進(jìn)制文件; -
go run命令則更加方便,它會在編譯后直接運(yùn)行Go語言程序,編譯過程中會產(chǎn)生一個臨時文件,但不會生成可執(zhí)行文件,這個特點(diǎn)很適合用來調(diào)試程序。
下面就來演示一下,如何運(yùn)行我們上一節(jié)中編寫的Go語言程序。
因?yàn)橹拔覀円呀?jīng)配置好了環(huán)境變量,所以可以直接使用 Windows 自帶的命令行工具(也叫 CMD 窗口或者命令提示符)來編譯Go語言程序。微軟后來對命令行工具進(jìn)行了一次升級,并更名為 Powershell,power 是更加強(qiáng)大的意思。
打開命令行工具的方式多種多樣,下面列出了比較常用的兩種:
- 可以在開始菜單中打開命令行工具,然后 cd 到 Go 源文件所在的目錄。
- 也可以在 Go 源文件所在目錄的空白處按住 Shift 鍵并單擊鼠標(biāo)右鍵,然后在彈出菜單中選擇“在此處打開命令行窗口”或者“在此處打開 Powershell 窗口”,這樣會自動 cd 到 Go 源文件所在的目錄,如下圖所示。這種方式更加方便,推薦大家使用。
提示:cd 是命令行工具的一個命令,用來改變當(dāng)前所在的目錄,是 change directory 的縮寫。
Win7 下選擇“在此處打開命令窗口”
Win10 下選擇“在此處打開 Powershell 窗口”
go build 命令
go build 命令用來啟動編譯,它可以將Go語言程序與相關(guān)依賴編譯成一個可執(zhí)行文件,其語法格式如下。
go build fileName
其中 fileName 為所需要的參數(shù),可以是一個或者多個 Go 源文件名(當(dāng)有多個參數(shù)時需要使用
空格將兩個相鄰的參數(shù)隔開),也可以省略不寫。
使用 go build 命令進(jìn)行編譯時,不同參數(shù)的執(zhí)行結(jié)果也是不同的。
1) 當(dāng)參數(shù)不為空時
如果 fileName 為同一 main 包下的所有源文件名(可能有一個或者多個),編譯器將生成一個與第一個 fileName 同名的可執(zhí)行文件(如執(zhí)行 go build abc.go def.go ... 會生成一個 abc.exe 文件);如果 fileName 為非 main 包下的源文件名,編譯器將只對該包進(jìn)行語法檢查,不生成可執(zhí)行文件。
2) 當(dāng)參數(shù)為空時
如果當(dāng)前目錄下存在 main 包,則會生成一個與當(dāng)前目錄名同名的“目錄名.exe”可執(zhí)行文件(如在 hello 目錄中執(zhí)行 go build 命令時,會生成 hello.exe 文件);如果不存在 main 包,則只對當(dāng)前目錄下的程序源碼進(jìn)行語法檢查,不會生成可執(zhí)行文件。
使用go build 命令對我們上一節(jié)編寫的程序進(jìn)行編譯,運(yùn)行結(jié)果如下所示:
D:\code> go build .\demo.go
D:\code> .\demo.exe
Hello World!
其中D:\code>對應(yīng)的是當(dāng)前目錄,也就是 D 盤下的 code 文件夾,它是命令行工具自動添加的,不屬于編譯命令的一部分。
第 1 行go build命令后面的參數(shù)中,.\表示當(dāng)前目錄。在Windows 系統(tǒng)中,當(dāng)前目錄使用.\表示;在類 Unix 系統(tǒng)(例如 Linux、MacOS 等)中,當(dāng)前目錄使用./表示。
注意,這里的go build 命令中 .\可以省略不寫,不會影響編譯。
另外,go build 命令只有在執(zhí)行出錯的情況下才會有返回信息,執(zhí)行成功的話是沒有返回信息的,但是會在當(dāng)前目錄生成一個與 main 包文件同名的 .exe 可執(zhí)行文件,如下圖所示。
第 2 行中的.\demo.exe表示執(zhí)行當(dāng)前目錄下的 demo.exe 程序。
第 3 行則是 demo.exe 程序的運(yùn)行結(jié)果。
go run 命令
除了使用go build命令外,Go語言還為我們提供了go run命令,go run命令將編譯和執(zhí)行指令合二為一,會在編譯之后立即執(zhí)行Go語言程序,但是不會生成可執(zhí)行文件。
go run 命令的語法格式如下:
go run fileName
其中 fileName 為所需要的參數(shù),參數(shù)必須是同一 main 包下的所有源文件名,并且不能為空。
使用 go run 命令對我們上一節(jié)編寫的程序進(jìn)行編譯,運(yùn)行結(jié)果如下所示:
D:\code> go run demo.go
Hello World!
可以看到第 1 行的go run 命令執(zhí)行后,直接在第 2 行輸出了程序的運(yùn)行結(jié)果。
除了本節(jié)中所講的,go build 命令和 go run 命令還有很多其他的編譯方法,我們將在后面為大家詳細(xì)介紹。
分享題目:創(chuàng)新互聯(lián)GO教程:Go語言程序的編譯和運(yùn)行
文章鏈接:http://www.dlmjj.cn/article/dpsjsjg.html


咨詢
建站咨詢
