GOPATH是你的工作目錄,對于項目文件而言,項目的結(jié)構(gòu)和你的工作目錄的結(jié)構(gòu)有很大關(guān)系。
創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比羅田網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式羅田網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋羅田地區(qū)。費用合理售后完善,10年實體公司更值得信賴。
GOPATH路徑下默認(rèn)是有以下三個目錄的,
1.src 存放源代碼(比如:.go .c .h .s等)
2.pkg 編譯后生成的文件(比如:.a)
3.bin 編譯后生成的可執(zhí)行文件(為了方便,可以把此目錄加入到 $PATH 變量中,如果有多個gopath,那么使用${GOPATH//://bin:}/bin添加所有的bin目錄)
golang的 GOPATH和vendor的搜索關(guān)系
項目只有一個包,即main包,沒有引用其他的包(golang自帶的系統(tǒng)包除外)。
然后設(shè)置GOPATH=path/to/goproject,再運行g(shù)o build myproject,這樣就可以在任何目錄下面編譯,編譯生成的可執(zhí)行文件就在編譯所在的目錄下,而不是包源文件所在的目錄。
基本規(guī)則:
鑒于此,建議golang項目必須嚴(yán)格按照規(guī)范的目錄結(jié)構(gòu)組織,哪怕是前面這種自包含的項目。
基本規(guī)則:
如果一個包在vendor和GOPATH下面都存在那么誰會優(yōu)先使用呢。
結(jié)論是:
包mydeps在vendor目錄下面和GOPATH路徑下面都存在了,那么main.go引用的時候只會引用vendor下面的mydeps(src/myproject/vendor/mydeps),而忽略GOPATH下面的mydeps包(src/mydeps)。
前面提到GOPATH和PATH類似,可以包含多個路徑,中間用分號隔開,go在搜索包的時候會按手續(xù)從前往后搜搜。那么vendor怎么處理層級關(guān)系呢。
規(guī)則是:
舉例:
如果src/mydep/mydep1/mydep.go引用了myvendor1和myvendor,那是怎么搜索的呢
可以簡單理解為:
$GOPATH 是go的工程目錄
/home/guest/gocode
├── bin
├── pkg
└── src
$GOROOT 是go的安裝目錄
/home/guest/tools/go
├── api
├── AUTHORS
├── bin
├── blog
├── CONTRIBUTING.md
├── CONTRIBUTORS
├── doc
├── favicon.ico
├── lib
├── LICENSE
├── misc
├── PATENTS
├── pkg
├── README.md
├── robots.txt
├── src
├── test
└── VERSION
名稱欄目:go語言gopath go語言開發(fā)為什么難找工作
本文URL:http://www.rwnh.cn/article34/dohhgse.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、品牌網(wǎng)站設(shè)計、網(wǎng)站制作、網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)