欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > go語言中GOPATH GOROOT的作用和設置方式

go語言中GOPATH GOROOT的作用和設置方式

熱門標簽:評價高的400電話辦理 外呼系統(tǒng)用什么卡 外呼系統(tǒng)顯本地手機號 阿克蘇地圖標注 excel地圖標注分布數(shù)據(jù) 壽光微信地圖標注 百度地圖標注后傳給手機 電話機器人軟件免費 涿州代理外呼系統(tǒng)

GOPATH 和 GOROOT

不同于其他語言,go中沒有項目的說法,只有包, 其中有兩個重要的路徑,GOROOT 和 GOPATH GOROOT是安裝目錄,GOPATH是我們的工作空間, 用來存放包的目錄

GOPATH可以設置多個,其中,第一個將會是默認的包目錄,使用 go get 下載的包都會在第一個path中的src目錄下,使用 go install時,在哪個GOPATH中找到了這個包,就會在哪個GOPATH下的bin目錄生成可執(zhí)行文件

修改 GOPATH 和 GOROOT

安裝的時候如果沒有更改設置,默認的GOROOT是在 C:\Go中,而 GOPATH會是在 C:\users\youName\go,

如果我們更改了go的安裝位置,那么可以需要設置一下GOROOT 環(huán)境變量了

打開環(huán)境變量設置,查看下面的系統(tǒng)變量,如果有 GOROOT這個選項的話,查看是否需要更改,沒有的話,新建一個就可以了,如圖:

同理,如果我們想在加一個工作空間的話,直接更改 GOPATH就可以了, go安裝的時候會在上面的用戶變量中添加GOPATH, 如果沒有的話像上一步一樣新建就可以了,多個目錄使用 ; 分號隔開

不管是可執(zhí)行包,還是非可執(zhí)行包,通通都應該在某個 $GOPATH/src下。如果你這樣做了,那么就不會出現(xiàn)本地包這種寫法了

import "./path/package"

比如你可以把你的可執(zhí)行(項目)包,安放在某個 $GOPATH/src下,例如 $GOPATH/src/app/youpackagedir

這樣本地包的import就變成

import "app/yourpackagedir/subpackage"

這樣有什么用呢?

1、可以使用 go install 你的子包,有利于go build的時間,如果子包較大,那就更明顯了

2、go code的自動完成可以用了

修改完以后需要重啟 命令行工具, cmd/powershell/gitbash/Other,不重啟不會生效的

補充:Go項目的環(huán)境變量GOROOT和GOPATH的設置-那些踩過的坑

那些遇到過的問題

不知道集美們在初次運行g(shù)o項目的時候會不會遇到一些奇奇怪怪的問題,反正我是遇到了(我自己太菜了)。解決這些問題經(jīng)常要花半天、一天的時間,甚至是好幾個月(其實是被我拋到腦后了,但是遲早要解決)。我就開始陸陸續(xù)續(xù)把問題及其解決方法整理出來,形成了該篇文章。

import "github.com/xx/xx"出問題?

can't resolve the diectory

需要go get github.com\xx\xx,將包從github上下載下來,自動放在gopath設置的路徑里面。

import"golang.org/xx/xx"出問題?

使用go get golang,org/xx/xx方法不能下下來。golang組織在github上建了一個鏡像庫。下載方法如下:

首先在gopath下創(chuàng)建好src/golang.org/x/目錄。后面就是按照同樣的方式進行下載了。比如golang.org/x/text,拉取該模塊代碼:

git clone https://github.com/golang/net.git

其他的子包下載:

$ git clone https://github.com/golang/tour.git
$ git clone https://github.com/golang/net.git
$ git clone https://github.com/golang/blog.git
$ git clone https://github.com/golang/sync.git
$ git clone https://github.com/golang/tools.git
$ git clone https://github.com/golang/lint.git

設置GOROOT和GOPATH

先設置系統(tǒng)環(huán)境變量

GOROOT應為go sdk的安裝目錄。GOPATH可以設定為自己想要的位置,以后go項目需要的依賴庫都會存放在這個路徑下面。

設置GOLAND中的GOROOT和GOPATH

GOROOT為go sdk的安裝目錄

GOPATH不用改變,自動為系統(tǒng)變量。

Go Modules(vgo)enable選項注意取消勾選或者勾選

用命令行編譯,運行g(shù)o項目,包含好幾個go文件

go項目文件列表如下

進入go項目的目錄,并運行g(shù)o build,生成exe文件,結(jié)果如下

最后運行可執(zhí)行文件即可

運行內(nèi)部包含多個 包的go項目

前面介紹了如何在命令行使用go命令編譯和運行包含多個go文件的項目。但是實際中的項目里面往往是有多個包組成,即有一定的層級結(jié)構(gòu),劃分不同的功能(我是這么理解的),有的用于配置Config包,有的用于數(shù)據(jù)模型生成data,有的用于服務service。直接用go build在項目根目錄是不好使的,出錯。項目的運行往往需要很多包,包括內(nèi)部和外部的。這里就可以用到go mod,管理項目依賴包,很好使。

介紹go module及區(qū)分go get

go get: 若是GOPATH設置的工程目錄,代碼在src目錄下,然后在命令提示符中輸入:go get github.com/astaxie/beego,這樣就在src目錄下生成了github.com/astaxie/beego包。注意:在使用GoLand工具時,配置settings->Go->GOPATH->Project GOPATH為當前工程目錄

值得一提的是,若是想要在其他位置新建go項目,就不得不更改系統(tǒng)變量GOPATH,將其設為新項目的位置,可能還要改goland中的GOPATH設置。比較麻煩。外部依賴包都存放在同一個位置,沒有項目私有的外部依賴包存放位置,不便于移植項目到連不上互聯(lián)網(wǎng)的電腦上。

go mod是golang1.11后引入的package依賴管理工具,用于解決之前沒有地方記錄依賴包具體版本的問題,方便依賴包管理。之前主要是用GOPATH 和 Vendor,vendor相對主流,但現(xiàn)在官方更提倡go mod。[3]

go module(mod):Go 的 1.11版本以上才能使用Go Module,1.13版本以下Go Module默認關(guān)閉,首先需要設置環(huán)境變量

go env -w GOPROXY=https://goproxy.io,direct 
go env -w GO111MODULE=on set GO111MODULE=on

在GOPATH的目錄下,新建項目文件夾,進入新建路徑執(zhí)行g(shù)o mod init,在文件夾下生成go.mod文件,然后將需要引入外部包的go文件置于項目目錄下,編譯文件,就會把外部包下載到本地的GOPATH/pkg/mod目錄下。

set GO111MODULE=off,GOPATH mode,查找vendor和GOPATH目錄。

set GO111MODULE=auto,如果當前目錄不在$GOPATH 并且 當前目錄(或者父目錄)下有g(shù)o.mod文件,則使用 GO111MODULE, 否則仍舊使用 GOPATH mode。

注意:在使用GoLand工具時,不要配置Project GOPATH為當前工程目錄,最好不要配置Project GOPATH,而是配置Module GOPATH [2] 在使用模塊的時候, GOPATH 是無意義的,不過它還是會把下載的依賴儲存在 GOPATH/src/mod 中,也會把 go install 的結(jié)果放在 GOPATH/bin(如果 GOBIN 不存在的話)

相關(guān)命令[3]

1、指定module根目錄并生成go.mod文件

go mod init example.com/hello

2、下載并添加依賴到go.mod文件中

go build src/service
go test src/sevice

3、查看module下的所有依賴

go list -m all

4、更新穩(wěn)定版依賴

go get rsc.io/sampler

5、更新為指定版本依賴

go list -m -versions rsc.io/sampler
 
rsc.io/sampler v1.0.0 v1.2.0 v1.2.1 v1.3.0 v1.3.1 v1.99.99
 
go get rsc.io/sampler@v1.3.1

6、清理無用的依賴

go mod tidy

7、將依賴復制到項目路徑的vendor文件夾中

go mod vendor

8、忽略cache里的包,只使用vendor目錄里的依賴進行編譯

go build -mod=vendor

9、校驗依賴并查看是否有修改

go mod verify

GoLand go module 配置

使用go module,依賴包存放于GOPATH下

優(yōu)先級:global path project path module path

勾選enable module選項

保持不變

使用vendor

注意要使用命令行,并勾選vendor

type *http.Server has no field or method ProxyRemoteAddr

是下載好依賴后,編譯時老是出現(xiàn)上訴問題,說外部依賴包里面有相關(guān)變量或方法沒定義。明明是網(wǎng)上下載的依賴包,自己又沒有修改,怎么會出現(xiàn)編譯通不過的問題?

對于https://github.com/csby/wsf來說就是這樣,出現(xiàn)問題

后面發(fā)現(xiàn)在它的readme.md文件中已經(jīng)有說明:

提示我們對源代碼作出以下修改。

按照它的提示修改后,編譯通過。go項目成功跑起來。

發(fā)現(xiàn)這些花了我一天多的時間。

命令行運行項目

項目結(jié)構(gòu)

srv(config()、data()、 enum()、 handler()、 service()、go.mod)

為項目添加go.mod文件

go mod init srv

往go.mod里面添加各個組件的依賴包

go build srv/config
go build srv/data
go build srv/enum
go build srv/service
go run srv/servive

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • go設置多個GOPATH的方式
  • 淺談golang 中time.After釋放的問題
  • golang 定時任務方面time.Sleep和time.Tick的優(yōu)劣對比分析
  • golang日志包logger的用法詳解
  • golang elasticsearch Client的使用詳解
  • goland設置顏色和字體的操作
  • go 類型轉(zhuǎn)換方式(interface 類型的轉(zhuǎn)換)
  • Go標準容器之Ring的使用說明

標簽:欽州 雞西 吐魯番 梅河口 蘭州 重慶 汕頭 銅川

巨人網(wǎng)絡通訊聲明:本文標題《go語言中GOPATH GOROOT的作用和設置方式》,本文關(guān)鍵詞  語,言中,GOPATH,GOROOT,的,作用,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《go語言中GOPATH GOROOT的作用和設置方式》相關(guān)的同類信息!
  • 本頁收集關(guān)于go語言中GOPATH GOROOT的作用和設置方式的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    亚洲色欲色欲www在线观看| 美女一区二区视频| 国产盗摄精品一区二区三区在线 | 欧美va亚洲va国产综合| 亚洲免费在线观看| 成人精品免费网站| 婷婷综合在线视频| 久久一留热品黄| 久久99久久99| 永久免费看mv网站入口78| 7777精品伊人久久久大香线蕉 | 久久久久无码国产精品一区李宗瑞 | 国产精品第七页| 粉嫩av蜜桃av蜜臀av| 日韩欧美在线1卡| 免费观看日韩电影| 亚洲欧美在线不卡| 日韩女优av电影在线观看| 日本怡春院一区二区| 国产草草浮力影院| 欧美一区二区三区在| 日本特黄久久久高潮| 欧美bbbbb性bbbbb视频| 精品99一区二区| 韩国三级中文字幕hd久久精品| 成年人在线免费看片| 久久成人小视频| 中文字幕av资源一区| 成人动漫在线一区| 欧美又粗又大又爽| 久久奇米777| 国产精品1区2区| 久久免费看少妇高潮v片特黄| 亚洲色图第一区| 美女日批在线观看| 欧美一二三四在线| 精品影视av免费| 久久国产波多野结衣| 一区二区三区高清| 日本丰满少妇裸体自慰| 久久蜜桃av一区二区天堂| 国产成人福利片| 欧美系列亚洲系列| 天天av天天翘天天综合网色鬼国产| 公侵犯人妻一区二区三区| 国产色综合久久| 99精品久久久久久| 欧美一区二区三区视频| 国产专区综合网| 91久久精品一区二区二区| 亚洲sss视频在线视频| 亚洲成人黄色av| 专区另类欧美日韩| 波多野结衣一二三区| 久久久精品黄色| 91看片淫黄大片一级在线观看| 欧美一区二区三区视频在线| 国产乱子轮精品视频| 91国产福利在线| 免费国产亚洲视频| 免费看一级大片| 五月婷婷久久丁香| www.99re6| 性久久久久久久| 亚洲欧美卡通动漫| 亚洲一区二区三区四区的| 加勒比综合在线| 亚洲女与黑人做爰| 免费看黄色的视频| 亚洲蜜臀av乱码久久精品| 香蕉视频黄色在线观看| 中文字幕日韩一区| 激情五月激情综合网| 在线精品视频小说1| 美女一区二区三区| 91久久精品一区二区三区| 狠狠久久亚洲欧美| 欧美日韩国产免费一区二区 | 91麻豆精品91久久久久同性| 国产精品一二三四| 91麻豆精品久久久久蜜臀| 成人一级片在线观看| 日韩视频一区在线观看| 99国产精品久久| 久久亚洲综合色| 亚洲午夜久久久久久久久| 中文无字幕一区二区三区| 免费的av网站| 亚洲免费av观看| 99热6这里只有精品| 日本亚洲天堂网| 欧美在线播放高清精品| 国产传媒欧美日韩成人| 日韩精品影音先锋| 美女日批在线观看| 亚洲视频免费看| 日韩欧美视频免费观看| 日本不卡免费在线视频| 欧美三级中文字幕| 暴力调教一区二区三区| 国产午夜精品福利| 深爱五月激情网| 香蕉影视欧美成人| 欧美在线啊v一区| www.日韩精品| 欧美激情一区二区三区蜜桃视频| 30一40一50老女人毛片| 亚洲va天堂va国产va久| 欧美在线免费观看亚洲| 成人99免费视频| 中文天堂在线一区| 中文字幕第24页| 久久疯狂做爰流白浆xx| 日韩一区和二区| 国产xxxxxxxxx| 亚洲成a人片综合在线| 在线观看91精品国产入口| 成人国产亚洲欧美成人综合网| 欧美极品美女视频| 亚洲一二三四视频| 狠狠网亚洲精品| 久久香蕉国产线看观看99| 精品夜夜澡人妻无码av| 午夜不卡av免费| 91麻豆精品国产91久久久使用方法 | 99在线热播精品免费| 国产精品久久久久一区二区三区| 国产一二三四区在线| 久久99国产精品尤物| xf在线a精品一区二区视频网站| wwwwxxxx国产| 久久精品999| 久久伊人中文字幕| 东京热无码av男人的天堂| 国产在线不卡一卡二卡三卡四卡| 久久久久久97三级| 久久免费手机视频| 成人丝袜18视频在线观看| 一色屋精品亚洲香蕉网站| 亚洲av鲁丝一区二区三区| bt欧美亚洲午夜电影天堂| ㊣最新国产の精品bt伙计久久| 色悠悠久久综合| 免费欧美一级片| 婷婷久久综合九色国产成人 | 一二三四在线观看视频| 亚洲午夜一区二区| 91精品中文字幕一区二区三区| 国产成人精品无码片区在线| 日本午夜精品一区二区三区电影| 26uuu精品一区二区在线观看| 亚洲色图 激情小说| 国产91精品入口| 亚洲免费观看高清在线观看| 欧美日韩一级片在线观看| 国产伦精品一区二区三区精品| 青青草精品视频| 久久久久亚洲综合| 99久久婷婷国产综合| 爱情岛论坛亚洲自拍| 日韩成人伦理电影在线观看| 精品福利一区二区三区| 亚洲人与黑人屁股眼交| 99麻豆久久久国产精品免费 | 色婷婷av一区| 欧美做受高潮中文字幕 | 欧美三级电影一区| 青青草视频播放| 国产乱码精品一区二区三区av| 中文字幕日韩一区二区| 欧美精品视频www在线观看| 久久精品无码一区| 成人高清av在线| 天天免费综合色| 中文天堂在线一区| 欧美精品久久一区| ass极品国模人体欣赏| 日本黄色三级网站| 蜜桃免费网站一区二区三区| 国产精品久久久久三级| 欧美久久久久免费| 国产视频不卡在线| 亚洲天堂小视频| 麻豆91免费看| 亚洲图片激情小说| 日韩欧美一二三区| 欧洲第一无人区观看| 中文字幕影片免费在线观看| 成人黄色大片在线观看| 日韩精品国产精品| 中文字幕一区日韩精品欧美| 欧美一区二区三区白人| av激情在线观看| 亚洲午夜久久久久久久久红桃 | 91久久精品国产91性色tv| 国产人妻人伦精品1国产丝袜| 成人免费观看男女羞羞视频| 日本女人一区二区三区| 亚洲人成网站色在线观看| 精品国产一区二区三区不卡|