最近在自學(xué)go,遇到點(diǎn)基礎(chǔ)的問題,通過自己實(shí)際操作之后得出結(jié)論
創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站建設(shè)、成都網(wǎng)站制作與策劃設(shè)計(jì),黃山區(qū)網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:黃山區(qū)等地區(qū)。黃山區(qū)做網(wǎng)站價格咨詢:18982081108
在實(shí)際操作之前,我們需要知道go有三種源碼文件:
? 1,命令源碼文件;聲明自己屬于main包,并且包含main函數(shù)的文件,每個項(xiàng)目只能有一個這樣的文件,即程序的入口文件
? 2,庫源碼文件;不能直接被執(zhí)行的源碼文件
? 3,測試源碼文件
本次操作不涉及測試源碼文件。
go run : 編譯并直接運(yùn)行程序,不產(chǎn)生可執(zhí)行文件,只產(chǎn)生臨時文件,方便用戶調(diào)試(即在bin目錄和pkg目錄不產(chǎn)生任何文件),其后只能+命令源碼文件。
go build : 既可以+庫源碼文件,又可以+命令源碼文件,主要功能是檢查是否有編譯錯誤
? +庫源碼文件:只是檢查編譯錯誤,不產(chǎn)生任何文件,如果庫源碼文件有語法錯誤,編譯不通過會報錯。
? +命令源碼文件:產(chǎn)生一個可執(zhí)行文件
go install : 執(zhí)行的過程:編譯庫源碼文件-編譯命令源碼文件-移動編譯文件,命令源碼文件的編譯移到bin目錄,庫源碼文件的編譯移到pkg目錄,這個移動目錄的過程成為安裝。
好了,go run , go build 和 go install三者的區(qū)別就到這里了。
go build只對main包有效,在當(dāng)前目錄編譯生成一個可執(zhí)行的二進(jìn)制文件(依賴包生成的靜態(tài)庫文件放在$GOPATH/pkg)。
go install一般生成靜態(tài)庫文件放在$GOPATH/pkg目錄下,文件擴(kuò)展名a,如果為main包,則會在$GOPATH/bin 生成一個可執(zhí)行的二進(jìn)制文件。
go build
通過go build加上要編譯的Go源文件名,我們即可得到一個可執(zhí)行文件,默認(rèn)情況下這個文件的名字為源文件名字去掉.go后綴。
$ go build hello.go
$ lshello hello.go
當(dāng)然我們也 可以通過-o選項(xiàng)來指定其他名字:
$ go build -o mygo hello.go
$ lsmygo hello.go
如果我們在go-examples目錄下直接執(zhí)行g(shù)o build命令,后面不帶文件名,我們將得到一個與目錄名同名的可執(zhí)行文件:
$ go build
$ lsgo-examples hello.go
go install
與build命令相比,install命令在編譯源碼后還會將可執(zhí)行文件或庫文件安裝到約定的目錄下。
1、go install編譯出的可執(zhí)行文件以其所在目錄名(DIR)命名
2、go install將可執(zhí)行文件安裝到與src同級別的bin目錄下,bin目錄由go install自動創(chuàng)建
3、go install將可執(zhí)行文件依賴的各種package編譯后,放在與src同級別的pkg目錄下
go build:用于測試編譯包,在項(xiàng)目目錄下生成可執(zhí)行文件(有main包)。
go install:主要用來生成庫和工具。一是編譯包文件(無main包),將編譯后的包文件放到 pkg 目錄下( $GOPATH/pkg )。二是編譯生成可執(zhí)行文件(有main包),將可執(zhí)行文件放到 bin 目錄( $GOPATH/bin )。
都能生成可執(zhí)行文件
$GOPATH/pkg 即圖片中的 pkg 目錄
$GOPATH/bin 即圖片中的 bin目錄
$GOPATH/src 即圖片中的 src目錄
了解更多關(guān)于 go 的環(huán)境變量
test1.go
test2.go
在example目錄下生成可執(zhí)行程序 example.exe
編譯 test1.go 在 bin 目錄下生成可執(zhí)行文件 example.exe
編譯 test1.go 在 pkg目錄下生成包文件 pack1.a
文中如有表述不清之處,請?jiān)谙旅媪粞裕視谝粫r間進(jìn)行完善。
編者希望能給大家?guī)砀鄡?yōu)質(zhì)的文章;上述內(nèi)容對你有幫助的話,請幫我點(diǎn)個贊,謝謝!
新聞名稱:go語言build go語言入門
標(biāo)題來源:http://www.chinadenli.net/article14/dosgsde.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、關(guān)鍵詞優(yōu)化、定制開發(fā)、小程序開發(fā)、電子商務(wù)、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)