Go語(yǔ)言基礎(chǔ)go build命令用法及示例詳解
go build
1. 用于測(cè)試編譯多個(gè)包或一個(gè)main包
2. build命令編譯包丟棄非main包編譯結(jié)果,只是檢查是否能夠被編譯
3. 保留main包編譯結(jié)果
一個(gè)Go項(xiàng)目在GOPATH下,會(huì)有如下三個(gè)目錄
- bin存放編譯后的可執(zhí)行文件
- pkg存放編譯后的包文件
- src存放項(xiàng)目源文件
- 一般,bin和pkg目錄可以不創(chuàng)建,go命令會(huì)自動(dòng)創(chuàng)建(如 go install),只需要?jiǎng)?chuàng)建src目錄即可。
使用:
add.go
package cal // 兩個(gè)數(shù)相加 首字母大寫(xiě),表示public 方法 func Add(a,b int)int{ return a+b }
subtraction.go
package cal // 兩個(gè)數(shù)相減 首字母大寫(xiě),表示public 方法 func Subtraction(a,b int) int { return a-b }
main.go
package main import ( "fmt" "cal" //到入自定義的包,cal必須在src文件下,必須和main同一級(jí) ) func main() { fmt.Println("hello word") fmt.Println("相加",cal.Add(10,20)) fmt.Println("相減",cal.Subtraction(40,50)) }
1. 普通包 【非main包】
go build add.go 【編譯add.go,不生成exe執(zhí)行文件】
go build -o add.exe add.go 【指定生成exe執(zhí)行文件,但是不能運(yùn)行此文件,不是main包】
2. main包【package main】
go build main.go 【生成exe執(zhí)行文件】
go build -o main.exe main.go 【指定生成main.exe執(zhí)行文件】
3. 項(xiàng)目文件夾下有多個(gè)文件
進(jìn)入文件的目錄
go build 【默認(rèn)編譯當(dāng)前目錄下的所有g(shù)o文件】
go build add.go subtraction.go 【編譯add.go 和 subtraction.go】
注意:
1. 如果是普通包,當(dāng)你執(zhí)行g(shù)o build之后,它不會(huì)產(chǎn)生任何文件?!痉莔ain包】
2. 如果是main包,當(dāng)你執(zhí)行g(shù)o
build之后,它就會(huì)在當(dāng)前目錄下生成一個(gè)可執(zhí)行文件exe。如果你需要在$GOPATH/bin下生成相應(yīng)的文件,需要執(zhí)行g(shù)o
install,或者使用go build -o 路徑/xxx.exe xxx.go
3. 如果某個(gè)項(xiàng)目文件夾下有多個(gè)文件,而你只想編譯某個(gè)文件,就可在go build之后加上文件名,例如go build
xxx.go;go build命令默認(rèn)會(huì)編譯當(dāng)前目錄下的所有g(shù)o文件。
4. 你也可以指定編譯輸出的文件名。我們可以指定go build -o
xxxx.exe,默認(rèn)情況是你的package名(main包),或者是第一個(gè)源文件的文件名(main包)。
5.go build會(huì)忽略目錄下以“_”或“.”開(kāi)頭的go文件。
以上就是Go語(yǔ)言基礎(chǔ)go build命令用法及示例詳解的詳細(xì)內(nèi)容,更多關(guān)于Go語(yǔ)言命令的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Go實(shí)現(xiàn)map并發(fā)安全的3種方式總結(jié)
Go的原生map不是并發(fā)安全的,在多協(xié)程讀寫(xiě)同一個(gè)map的時(shí)候,安全性無(wú)法得到保障,這篇文章主要給大家總結(jié)介紹了關(guān)于Go實(shí)現(xiàn)map并發(fā)安全的3種方式,需要的朋友可以參考下2023-10-10詳解Golang如何優(yōu)雅接入多個(gè)遠(yuǎn)程配置中心
這篇文章主要為大家為大家介紹了Golang如何優(yōu)雅接入多個(gè)遠(yuǎn)程配置中心詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05jenkins配置golang?代碼工程自動(dòng)發(fā)布的實(shí)現(xiàn)方法
這篇文章主要介紹了jenkins配置golang?代碼工程自動(dòng)發(fā)布,jks是個(gè)很好的工具,使用方法也很多,我只用了它簡(jiǎn)單的功能,對(duì)jenkins配置golang相關(guān)知識(shí)感興趣的朋友一起看看吧2022-07-07Go語(yǔ)言大揭秘:適用于哪些類(lèi)型的項(xiàng)目開(kāi)發(fā)?
想知道Go編程語(yǔ)言適合開(kāi)發(fā)哪些類(lèi)型的項(xiàng)目嗎?無(wú)論是網(wǎng)絡(luò)服務(wù)、分布式系統(tǒng)還是嵌入式設(shè)備,Go都能輕松應(yīng)對(duì),本文將帶你了解Go在各種場(chǎng)景下的應(yīng)用,讓你更好地選擇和使用Go進(jìn)行開(kāi)發(fā),需要的朋友可以參考下2024-01-01GoFrame實(shí)現(xiàn)順序性校驗(yàn)示例詳解
這篇文章主要為大家介紹了GoFrame實(shí)現(xiàn)順序性校驗(yàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06golang interface判斷為空nil的實(shí)現(xiàn)代碼
這篇文章主要介紹了golang interface判斷為空nil的實(shí)現(xiàn)代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04