GO в IntelliJ IDEA. Несколько файлов и ошибок Undefined: данные

Я хочу использовать IntelliJ IDE Community Edition для написания кода в GO (GoLang). Я установил правильный плагин и установил все необходимые инструменты для создания приложения. Мое приложение состоит из двух файлов ниже. Каждый из них находится в директории.. /EventServer.

  • Main.go
  • Data.go

Если я хочу запустить проект из IntelliJ, используя функцию Run (Ctlr + Shift + F10) и я получить ниже ошибки

/usr/lib/go/bin/go build -o "/tmp/Build Main.go and run0go" -gcflags "-N -l" /my/home/blah/EventServer/Main.go
# command-line-arguments
./Main.go:11: undefined: Data

Я могу без каких-либо проблем скомпилированный код из терминала войти в директиву с командой проекта и выполнения

:~/Pulpit/EventServer$ go build
./EventServer 
Hello
dane w strukturze someone

Директория дерева и файлы выглядят как

EventServer$ tree -a
.
├── Data.go
├── EventServer
├── EventServer.iml
├── .idea
│   ├── compiler.xml
│   ├── copyright
│   │   └── profiles_settings.xml
│   ├── libraries
│   │   └── GOPATH__EventServer_.xml
│   ├── misc.xml
│   ├── modules.xml
│   ├── .name
│   ├── vcs.xml
│   └── workspace.xml
└── Main.go

Я полагаю, что команда для запуска плохая, потому что компилятор пытается создать программу только с одним файлом Main.go, но не со всеми файлами. Правая команда должна быть

$ go run *.go 

Но я не знаю, где я могу установить это.

Я также установил GOPATH для:

export GOPATH=$HOME/Pulpit/EventServer

Это также не помогает

CODE

Main.go

package main

import (
    "fmt"

)

func main() {

    fmt.Println("Hello")
    abcd := Data{"someone" , "1234567"}
    fmt.Printf("dane w strukturze %s ", abcd.Name)

}

И Data.go

package main


type Data struct {
Name string
Phone string

}

СИСТЕМА: LINUX

Ответ 1

---------------------- решаемые --------------------- ---------------------- решаемые ---------------------

Шаги

  • Проект должен быть найден в каталоге for/example/MyProject/src/HERE_DIRECTORY_WITH_YOUR_SOURCE_GO_FILE sub direcytory src важно
  • Перейдите к Run --> Edit Configurations
  • Найдите позицию ниже

введите описание изображения здесь

  • Измените Run Kind на Package
  • В позиции Package напишите папку с вашим кодом (Shold be Highlight it correct)
  • Нажмите значок "PLUS" в левом верхнем углу и добавьте Go Application
  • Применить изменения
  • В правом верхнем углу главного окна IDE Вы видите маленькую иконку Play

введите описание изображения здесь

  • Выберите раннее определение Go Application my is Unamed
  • Нажмите "Воспроизвести"
  • Радость: D

Ответ 2

Скажем, у вас есть проект с каталогом src/sub и двумя .go файлами внутри: hello.go и typetest.go, и оба определяют один и тот же пакет "main". Один из них (hello.go) также реализует func main().

Чтобы сделать его компиляцией в целом, вам нужно убедиться, что две вещи настроены правильно: конфигурация GOPATH и Run/Debug.

Откройте настройки библиотек проектов /GOPATH:

Для Гогланда

Файл → Настройки → Перейти

Для Intellij IDEA

Файл → Настройки → Языки и рамки → Go → Go Libraries

Уверяет, что GOPATH для проекта выглядит примерно так:

Настройки GOPATH

Затем откройте Run → Edit Configurations и убедитесь, что ваша конфигурация выглядит примерно так:

Запуск/Отладка конфигурации

Ответ 3

Вы можете добавить второй файл (в вашем случае Data.go) в поле "Параметры инструмента поиска" в "Конфигурации запуска/отладки". Я читал об этом здесь: https://github.com/go-lang-plugin-org/go-lang-idea-plugin/issues/2013 в конце обсуждения. Пример ниже (я использовал 2 файла HelGo.go и aaa.go) работал у меня:

Запустить конфигурацию с двумя файлами

Intellij, протестовавший в этих двух файлах, находился в разных папках, поэтому оба они должны быть одного пакета (основного). С другой стороны, я не мог вообще консультироваться с этой страницей.

Ответ 4

Сарп Кайя, просто следуйте за шагами Mbded. Дополнительный шаг, убедитесь, что ваш дополнительный GOPATH должен быть там.

Например, это наш ~/.profile GOPATH

export GOPATH=$HOME/lib/Go:$HOME/Development/Go

Первый путь, используемый go, выполняет процессы и т.д., в то время как ваш активный каталог разработки go переходит к следующему пути.

В соответствии с нашей конфигурацией точный путь RightApp должен быть $HOME/Development/Go/src/RightApp.