Как запустить проект GO в Eclipse с установленным Goclipse

Я установил goclipse в свое затмение и создал новый проект go.

Теперь вот что у меня есть:

И у меня hello.go выглядит так:

package main

import "fmt"

func main() {
     fmt.Println("Hello")
}

Затем я нажимаю кнопку запуска или щелкаю правой кнопкой мыши файл hello.go, а затем запускаю, ничего не дает. Кроме того, он также пуст в папке bin.

Тогда я нажимаю run configurations кнопка, почти пустая там только с названием проекта. это дает:

Given Go package not found.

Это мои предпочтения для Go:

Я заметил, что и GOROOT, и GOPATH отличаются от тех, что перечислены в проводнике, но как только я изменил их на C:\Go\src\pkg или C:\Go\src, кнопки Apply и OK становятся недоступными. Кроме того, у меня нет папки C:\Go\src\pkg.

Я могу go install или же go build в командной строке, но я хотел бы использовать Eclipse для другого гораздо более крупного проекта. Это Windows 7, и версия Eclipse - Luna Service Release 1 (4.4.1). Спасибо.

РЕДАКТИРОВАТЬ: Теперь у меня есть следующие конфигурации, и она отлично работает: Go установлен в C: \ Go в настройках: GOROOT:C:\Go, GOPATH: C:\Users\Tiina\go_workspace Остальное в настройках заполняется автоматически, Проект helloTest находится в C:\Users\Tiina\go_workspace\src\helloTest hello.go находится в C:\Users\Tiina\go_workspace\src\helloTest\hello.go Может быть, потому что я создаю проект из существующего кода, и что-то осталось позади, оно автоматически добавляет еще одну GOPATH, в настройках удалите это.

2 ответа

Решение

Если GOROOT относится к тому, где установлен Go (C:\Go), то вам необходимо убедиться, что:

  • GOPATH отличается от GOROOT (это важно, потому что GOROOT/[src|pkg|bin] папки для самого языка Go, а не для ваших собственных источников)
  • GOPPATH указывает на папку, в которой будут находиться все ваши различные проекты Go (например, C:\Users\yourName\Go: это определяет рабочее пространство)
  • ваш проект затмения создан в GOPATH\src\myproject

См. " Как написать код Go", чтобы убедиться, что ваши источники установки и проекта соответствуют ожидаемой организации.


Tiina сообщает в комментариях:

Сейчас это работает, но я заметил две странные вещи.

  • Первое, что я сделал: я двигаюсь helloTest папка в C:\Users\Tiina\go_workspace\srcтак что теперь это в C:\Users\Tiina\go_workspace\src\helloTest,
  • Затем я создаю проект из существующего кода. Больше ничего не изменилось. Теперь у меня два GOPATH в проводнике один C:\Users\Tiina\go_workspace\srcдругой C:\Users\Tiina\go_workspace\helloTest\src,
    Последний не существовал в начале

Я подозреваю, что делает Goclipse, определить один GOPATH за проект (или дополнить существующий GOPATH).
Если вы создадите или импортируете проект, он определит / завершит GOPATH в <that project/src>
Если вы hello.go в этом <that project/src/> папку, то она должна собираться и работать как положено.

В руководстве пользователя "Структура проекта" Goclipse упоминается:

Местоположение проекта не является частью какого-либо GOPATH запись.
В этом случае местоположение проекта будет неявно добавлено как запись в GOPATHи структура рабочего пространства Go с bin, pkg, а также src каталоги будут использоваться в проекте.

Обратите внимание, что проект неявный GOPATH Запись будет применяться только к исходным модулям в этом проекте. Он не будет виден другим проектам Goclipse (если запись явно не добавлена ​​в глобальную GOPATH).

в src папку, вы можете создавать исходные файлы Go, которые будут скомпилированы в пакет библиотеки (и помещены в pkg) или в исполняемый файл (и помещен в bin)

Вот что нужно сделать. Нужно всегда следовать соглашению GO структуры каталогов. В eclipse после создания нового проекта просто создайте "новую папку" в каталоге src, щелкнув правой кнопкой мыши на папке src. А теперь под этой папкой создайте новый GO-файл. У меня были проблемы с запуском этого на моем MAC, но после выполнения описанных выше шагов удалось решить.

  • Вишал (www.vishalpandya.com)

Пожалуйста, примите во внимание тот факт, что если вы измените GOPATH во время работы в Eclise/GoClipse, вам придется выйти / перезапустить Eclipse, чтобы Eclipse мог перечитать новые переменные среды.

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