今天,靈感一現:不能一個檔案幹到底吧,那要是工程大了怎麼辦?
答案很簡單,“包”啊
GO裡的包,看起來很簡單,但又不簡單
一開始,我想當然的以為就是include 路徑一樣的問題
事實是,GO以GOPATH環境變量來管理的,其實,從你在應用标準包根本沒有路徑一說,就應該能猜到這個該死的結果了
好了,下邊,我們以一個例子來說明,避免網上那些看似很仔細的說,但就是怎麼也說不明白的症結吧!
一 找到你的GOPATH
echo $GOPATH
/root/gopkg //我的位置在這裡,你自己的肯定不一樣吧,當然,要是你跟我設定一樣,那就是這個了
二 我們自己庫源碼要放入的位置
$GOPATH/src/other
三 gin-1.go , gin-2.go源碼
//gin-1.go
package other
import (
"fmt"
)
func Show1() {
fmt.Println("1 is ok")
}
//gin-2.go
package other
import (
"fmt"
)
func Show2() {
fmt.Println("2 is ok")
}
四 編譯與安裝我們的other庫
在ohter 父目錄下執行
go build other
go install other
然後在$GOPATH/pkg/linux_amd64下會找到們生成庫other.a
五 祝賀你,現在你可以用other這個包了
//gin-main.go
package main
import (
"other"
)
func main() {
other.Show1()
other.Show2()
}
//運作
go build gin-main.go
./gin-main
1 is ok
2 is ok
看,我們成功調用了自定義的GO庫
開心吧?哈哈哈
Finally:
這個問題,在實際工程開發中意義還是十分巨大的,希望你能了解并應用
當然,别問我,為何你說的這麼清楚?網上卻找不到這樣的博文
應該去問,那些人為何說不明白,哈哈哈哈!
轉載于:https://www.cnblogs.com/woodzcl/p/7560736.html