1. 程式人生 > 程式設計 >解決Goland 提示 Unresolved reference 錯誤的問題

解決Goland 提示 Unresolved reference 錯誤的問題

之前一直正常的專案,莫名其妙的 database/sql 包下的方法、結構體等等IDE都無法識別,出現一堆Unresolved reference錯誤提示,但包匯入路徑可以正確定位,而且專案執行也正常,其他包都正常,另一個專案下同樣使用sql包也正常。

折騰半天都沒用,不想重建專案重灌IDE太麻煩,最後嘗試最簡單的升級到 golang 1.12.5 重啟Goland後就正常了,應該和版本沒有關係,重灌下golang就行,估計是Goland檔案索引的問題,重灌golang後會重建索引就能正常識別了

解決Goland 提示 Unresolved reference 錯誤的問題

import 正常,能正確識別路徑,但不能識別 database/sql 包中的任何方法、結構體等。。。但使用其他包卻都正常,奇怪

解決Goland 提示 Unresolved reference 錯誤的問題

升級golang後IDE應該是重建了索引,現在就一切正常了

補充:Goland 匯入自定義包問題解決

今天在學習Go的面向物件時,想測試Go中類屬性、方法的公私有問題,在另外定義一個包後,發現在main函式中無法匯入。

在網上查了很多部落格都沒能解決問題,目錄頁照著修改了 ,什麼GOPATH也修改了,參照很多文章,他們的解決方法似乎都不太適合我。。。。

經過頭皮發麻,差點爆錘電腦後,終於綜合多篇文章解決問題!

這裡介紹一下我自己的解決方法

解決Goland 提示 Unresolved reference 錯誤的問題

1.設定中啟用“Enable Go Modules”

Setting中設定啟用go module(其他go path之類的無需設定,使用預設),路徑:Go——Go Modules,勾選Enable Go Modules

2.在專案跟目錄下執行go mod init

在編輯器左下方找到“Terminal”選項卡,進入後執行 go mod init命令

解決Goland 提示 Unresolved reference 錯誤的問題

如圖,會提示正確的命令使用方法。根據我的情況執行如下命令:

解決Goland 提示 Unresolved reference 錯誤的問題

這時候專案目錄中會建立go.mod檔案

解決Goland 提示 Unresolved reference 錯誤的問題

然後,我嘗試匯入自定義包,發現問題並沒有解決。

解決Goland 提示 Unresolved reference 錯誤的問題

並出現新的問題:

解決Goland 提示 Unresolved reference 錯誤的問題

對該錯誤的解釋:開啟模組支援後,並不能與$GOPATH共存,所以需要把專案從$GOPATH中移出即可

也就是說,開啟模組支援後我們需要確認Project GOPATH 是空的,即將其中的項刪除。

3.確認並清除Project GOPATH

解決Goland 提示 Unresolved reference 錯誤的問題

解決Goland 提示 Unresolved reference 錯誤的問題

Global GOPATH 改不改、有沒有並沒什麼影響。

說明:

Global GOPATH:環境變數中配置的GOPATH路徑

Project GOPATH:專案的GOPATH,最好不好設定Global GOPATH,因為這樣專案將會使用到所用配置到GOPATH的檔案

返回編輯頁面,匯入錯誤提示已經沒有了。

解決Goland 提示 Unresolved reference 錯誤的問題

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援我們。如有錯誤或未考慮完全的地方,望不吝賜教。