GO в IntelliJ IDEA. Несколько файлов и ошибок Undefined: данные
Я хочу использовать IntelliJ IDE Community Edition для написания кода в GO (GoLang). Я установил правильный плагин и установил все необходимые инструменты для создания приложения.
Мое приложение состоит из двух файлов ниже. Каждый из них находится в директории.. /EventServer.
Если я хочу запустить проект из 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
.