Как запустить проект 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 мог перечитать новые переменные среды.