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