主頁(yè) > 知識(shí)庫(kù) > 淺談goland導(dǎo)入自定義包時(shí)出錯(cuò)(一招解決問(wèn)題)

淺談goland導(dǎo)入自定義包時(shí)出錯(cuò)(一招解決問(wèn)題)

熱門(mén)標(biāo)簽:谷歌美發(fā)店地圖標(biāo)注 貴州電話智能外呼系統(tǒng) 400開(kāi)頭電話怎樣申請(qǐng) 利用地圖標(biāo)注位置 杭州人工智能電銷(xiāo)機(jī)器人費(fèi)用 江蘇呼叫中心外呼系統(tǒng)有效果嗎 赤峰電銷(xiāo) 地圖區(qū)域圖標(biāo)注后導(dǎo)出 官渡電銷(xiāo)外呼管理系統(tǒng)怎么收費(fèi)

使用goland編寫(xiě)go語(yǔ)言程序的時(shí)候,發(fā)現(xiàn)針對(duì)自定義的包無(wú)法引入。

如下圖所示:

具體錯(cuò)誤也就是

main.go:13:2: cannot find package "grpool" in any of:

然后就各種在網(wǎng)上查找,大多數(shù)也都講得很不清楚,最后找到一個(gè)說(shuō)的比較詳細(xì)的鏈接 //www.jb51.net/article/202148.htm。

但是這個(gè)鏈接也只是啟發(fā)了我。下面來(lái)圖形結(jié)合的方式講述我的方法。

(1)首先將之前定義的包和包下的文件移至到新定義的目錄src下,我的目錄結(jié)構(gòu)如下:

(2) 接下來(lái)在File->Settings下的Go下面可以看到GOROOT和GOPATH兩個(gè)。

GOROOT其實(shí)就是go語(yǔ)言安裝的所在目錄

GOPATH說(shuō)實(shí)在的我也不知道是干啥的,反正在網(wǎng)上查的都是要設(shè)置設(shè)么GOPATH之類的。于是這個(gè)GOPATH就引起我的重視了。

當(dāng)然我們只想設(shè)置的這個(gè)包在這個(gè)工程下就可以了,那我們就直接點(diǎn)擊下面的一個(gè)加號(hào),添加工程所在的路徑。如下圖所示:

最后都一切OK了。問(wèn)題全部解決啦。

看到這你覺(jué)得很簡(jiǎn)單,可以說(shuō)這對(duì)初學(xué)者來(lái)說(shuō)卻是花費(fèi)了很大的力氣才解決的。

補(bǔ)充:在GoLand下使用go mod導(dǎo)入自定義包與第三方包時(shí)需清除Project GOPATH配置

1、在GoLand下使用go mod導(dǎo)入自定義包與第三方包

問(wèn)題描述:在學(xué)習(xí)github的gokit微服務(wù)項(xiàng)目過(guò)程中,使用GoLand導(dǎo)入項(xiàng)目文件,但配置自定義包和第三方包時(shí),雖能正常go get,且在./pkg/mod/github.com目錄下能找到對(duì)應(yīng)的下載文件,但仍無(wú)法import成功;報(bào)package xxx is not in GOROOT的錯(cuò)誤;同時(shí)出現(xiàn) $GOPATH/go.mod exists but should not 的錯(cuò)誤;go mod init提示outside GOPATH;

2、項(xiàng)目文件創(chuàng)建

在任意目錄(無(wú)需考慮GOPATH的)創(chuàng)建項(xiàng)目文件夾,并在該目錄下創(chuàng)建bin、pkg、src等三個(gè)子文件夾

將下載的項(xiàng)目代碼拷貝至src源代碼文件夾,或自行創(chuàng)建相應(yīng)的go文件

在*.go程序的import()代碼片段中將報(bào)紅的依賴項(xiàng)選中并點(diǎn)擊go get...,執(zhí)行下載安裝操作

在./pkg/mod/github.com文件夾中能查獲新下載的第三方軟件包,但是import時(shí)仍然報(bào)錯(cuò),如下圖所示

3、使用GoModules模式配置依賴項(xiàng)

在File->Setting->Go Modules設(shè)置項(xiàng)中,選中enable go modulse integration

打開(kāi)GoLand的Terminal,在工程的根目錄路徑下輸入go mod init,以初始化項(xiàng)目并生成go.mod文件,此時(shí)將會(huì)出現(xiàn)如下錯(cuò)誤:

上述報(bào)錯(cuò)的原因是我們的項(xiàng)目文件不遵循GOPATH路徑,因此需要使用go mod init 項(xiàng)目目錄名進(jìn)行初始化:

正常執(zhí)行上述指令后,工程根目錄下將出現(xiàn)go.mod文件

4、使用GoModules時(shí)出現(xiàn)的問(wèn)題(需清除Project GOPATH配置)

在步驟2中成功創(chuàng)建了go.mod文件,但隨之而來(lái)的是另外一個(gè)錯(cuò)誤,如下圖所示:

究其根本,原因是GOPATH與GoModules包管理模式不能并存,只能二選一,因此本例中選擇了GoModules模式,需要完善的操作如下圖所示:

在設(shè)置中將Project GOPATH內(nèi)的路徑配置清除,并使Global GOPATH保持為默認(rèn)值,重新sync同步之后,即可成功導(dǎo)入第三方包

5、導(dǎo)入自定義包

在導(dǎo)入自定義包時(shí),若直接使用package對(duì)應(yīng)的包名,則會(huì)報(bào)錯(cuò)package xxx is not in GOROOT,如下圖所示:

為此,則需以根目錄開(kāi)始到包所在目錄的路徑格式進(jìn)行導(dǎo)入,示例如下:

6、正常創(chuàng)建并導(dǎo)入包后的目錄結(jié)構(gòu)

包含bin pkg src,把代碼存放或創(chuàng)建在src目錄下

在GoModule模式下,無(wú)需考慮項(xiàng)目文件夾是否在GOPATH中

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

您可能感興趣的文章:
  • Golang import本地包和導(dǎo)入問(wèn)題相關(guān)詳解
  • 解決Goland 提示 Unresolved reference 錯(cuò)誤的問(wèn)題
  • go語(yǔ)言入門(mén)環(huán)境搭建及GoLand安裝教程詳解

標(biāo)簽:保定 宜春 黔西 泰安 鷹潭 河池 武漢 松原

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《淺談goland導(dǎo)入自定義包時(shí)出錯(cuò)(一招解決問(wèn)題)》,本文關(guān)鍵詞  淺談,goland,導(dǎo)入,自定義,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《淺談goland導(dǎo)入自定義包時(shí)出錯(cuò)(一招解決問(wèn)題)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于淺談goland導(dǎo)入自定義包時(shí)出錯(cuò)(一招解決問(wèn)題)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章