最近在自學(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)站價(jià)格咨詢:18982081108
在實(shí)際操作之前,我們需要知道go有三種源碼文件:
? 1,命令源碼文件;聲明自己屬于main包,并且包含main函數(shù)的文件,每個(gè)項(xiàng)目只能有一個(gè)這樣的文件,即程序的入口文件
? 2,庫源碼文件;不能直接被執(zhí)行的源碼文件
? 3,測試源碼文件
本次操作不涉及測試源碼文件。
go run : 編譯并直接運(yùn)行程序,不產(chǎn)生可執(zhí)行文件,只產(chǎn)生臨時(shí)文件,方便用戶調(diào)試(即在bin目錄和pkg目錄不產(chǎn)生任何文件),其后只能+命令源碼文件。
go build : 既可以+庫源碼文件,又可以+命令源碼文件,主要功能是檢查是否有編譯錯(cuò)誤
? +庫源碼文件:只是檢查編譯錯(cuò)誤,不產(chǎn)生任何文件,如果庫源碼文件有語法錯(cuò)誤,編譯不通過會報(bào)錯(cuò)。
? +命令源碼文件:產(chǎn)生一個(gè)可執(zhí)行文件
go install : 執(zhí)行的過程:編譯庫源碼文件-編譯命令源碼文件-移動(dòng)編譯文件,命令源碼文件的編譯移到bin目錄,庫源碼文件的編譯移到pkg目錄,這個(gè)移動(dòng)目錄的過程成為安裝。
好了,go run , go build 和 go install三者的區(qū)別就到這里了。
go build只對main包有效,在當(dāng)前目錄編譯生成一個(gè)可執(zhí)行的二進(jìn)制文件(依賴包生成的靜態(tài)庫文件放在$GOPATH/pkg)。
go install一般生成靜態(tài)庫文件放在$GOPATH/pkg目錄下,文件擴(kuò)展名a,如果為main包,則會在$GOPATH/bin 生成一個(gè)可執(zhí)行的二進(jìn)制文件。
go build
通過go build加上要編譯的Go源文件名,我們即可得到一個(gè)可執(zhí)行文件,默認(rèn)情況下這個(gè)文件的名字為源文件名字去掉.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命令,后面不帶文件名,我們將得到一個(gè)與目錄名同名的可執(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自動(dòng)創(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)谙旅媪粞?,我會第一時(shí)間進(jìn)行完善。
編者希望能給大家?guī)砀鄡?yōu)質(zhì)的文章;上述內(nèi)容對你有幫助的話,請幫我點(diǎn)個(gè)贊,謝謝!
新聞名稱:go語言build go語言入門
標(biāo)題來源:http://jinyejixie.com/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)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)