Допустимые методы, выделенные красным цветом "Неразрешенная ссылка"

Как решить эту проблему? Программа работает. Но методы в Гогланде выделены красным. Добавлена ​​версия 5.8 Qt.

Gogland (1.0 Preview) 1.0 EAP
Build #GO-171.4694.61, built on June 27, 2017
Gogland EAP User
Expiration date: September 25, 2017
JRE: 1.8.0_112-release-736-b21 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Linux 4.8.0-58-generic


batis@dev:~$ printenv | grep GO
GOROOT=/usr/lib/go-1.8/
GOPATH=/home/batis/gocode/

package main

import (
    "os"
    "github.com/therecipe/qt/widgets"
)

func main() {
    widgets.NewQApplication(len(os.Args), os.Args)

    //create a window
    window := widgets.NewQMainWindow(nil, 0)

    ......

    widgets.QApplication_Exec()
}

Некоторое изображение

GOPATH

Некоторое изображение

Тестовый прогон ОК

9 ответов

Решение

Методы определены в большом сгенерированном файле, который не индексируется Gogland. Чтобы изменить лимит, вы должны изменить idea.max.intellisense.filesize,

Для этого откройте файл пользовательских свойств через Help | Edit Custom Properties меню и добавьте что-то вроде этого: idea.max.intellisense.filesize=4500 для предела 4,5 МБ. Размер в килобайтах.

Пожалуйста, используйте осторожно, индексирование больших файлов может существенно повлиять на скорость обновления индекса.

Недавно столкнулся с этим проектом GOPATH на bitbucket.org, который не нашел на github.com. Поставил галочку в поле "Index all GOPATH" и исправил его.

Возможно, это недопустимо для исходного контекста, но я обнаружил обходной путь: переименовать файл, в котором определен метод или другой идентификатор, разрешить Goland переиндексировать, а затем переименовать его обратно в исходное имя.

Для меня ни одно из вышеперечисленных решений не сработало. Наконец, я смог решить эту проблему, включив флажок «Включить интеграцию модулей Go», расположенный в разделе «Настройки»> «Перейти»> «Модули Go».

У меня была такая же проблема, и это сработало для меня:

  1. В главном меню выберите Файл | Сделать недействительными кеши.

  2. В диалоговом окне Invalidate Caches вы можете выбрать дополнительные действия, которые IDE будет выполнять при удалении файлов кеша:

  3. Очистить кеш файловой системы и локальную историю

  4. Нажмите "Недействительно и перезапустите".

Это также может произойти, если go.mod копируется из другого проекта без обновления имени проекта:

// go.mod

module github.com/org/new-project

go 1.15

Для меня это было то, что у меня GOPATH был установлен на 1.15, но GOROOT установлен на 1.14, поэтому вам нужно установить их на одну и ту же версию. Вы можете найти эти настройки в Preferences -> Go -> GOROOT или GOPATH.

Я использую gvm - Go Version Manager, поэтому в моей системе несколько версий Go.

У меня была такая же проблема с Goland 2021.1 в Windows 10 с go SDK 1.13. Я решил проблему, установив последнюю версию go 1.16.3 рядом с версией 1.13, которая мне нужна для моих проектов. Оказалось, что моя ОС Windows 10 была исправлена ​​обновлениями безопасности, несовместимыми с GoLand 2021.1 и SDK 1.13.

Вам нужно «Включить интеграцию модулей Go», зайдя в «Файл» и выбрав настройки, а затем «Модули Go».

Другие вопросы по тегам