IntelliJ IDEA中的GO,多个文件和错误未定义:数据类型

dced5bon  于 2022-11-28  发布在  IntelliJ IDEA
关注(0)|答案(5)|浏览(203)

我想使用IntelliJ IDE Community Edition在**GO(GoLang)**中编写代码。我安装了正确的插件,并安装了构建应用程序所需的所有工具。我的应用程序由以下两个文件组成。每个文件都在目录 ../EventServer 中。

  • Main.go
  • Data.go

如果我想使用函数Run(Ctlr+Shift+F10)从IntelliJ运行项目,并且我得到以下错误

/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

这也没什么帮助

代码

"主星,开始"

package main

import (
    "fmt"

)

func main() {

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

}

还有"数据“

package main

type Data struct {
Name string
Phone string

}

系统:LINUX

svgewumm

svgewumm1#

您可以在Run/Debug Configurations中添加第二个文件(在您的例子中是Data.go)作为Go工具参数字段。https://github.com/go-lang-plugin-org/go-lang-idea-plugin/issues/2013接近讨论的结尾。下面的例子(我使用了2个文件HelGo.go和aaa.go)对我很有效:
Go Run Configuration with 2 files
这两个文件中的Intellij对象在不同的文件夹中,所以它们必须是同一个包(主)。另一方面,我不能在这个页面上工作的任何建议。

sqyvllje

sqyvllje2#

我用一个完整的检查列表解决了同样的问题。通常,有多个问题相互结合在一起。
首先,检查你的GOPATH设置,有两种方法:
1.使用命令行检查go环境:

$ go env

你将得到一个全局环境设置,确保你的GO文件夹是正确的。2如果你正在使用一些本地包,也要注意它们。
1.请检查您的生成工具设置,是否已将所有资源文件添加到依赖项中。2这是设置项目GOPATH的另一种方法,并且不会影响全局设置。
其次,检查您的运行/调试配置,并确保您的设置已经找到了主包主文件。无论您使用哪种配置,这总是开始。

gupuwyp2

gupuwyp23#

Sarp Kaya,只需按照Mbded步骤执行。附加步骤是,确保您的附加GOPATH应该在那里。
例如,这是~/.profile GOPATH

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

go get进程等使用的第一个路径,而你的活动go开发目录则转到下一个路径。
根据我们的配置,RightApp的确切路径应为$HOME/Development/Go/src/RightApp

5cnsuln7

5cnsuln74#

**已解决--

步骤

  • 项目必须在目录for/example/MyProject/src/HERE_DIRECTORY_WITH_YOUR_SOURCE_GO_FILE子目录中找到src很重要
  • 转到Run --> Edit Configurations
  • 查找以下位置

  • Run Kind更改为Package
  • 在位置Package中写入您的文件夹和您的代码(Shold be Highlight it is correct)
  • 单击左上角的“加号”图标,然后添加Go Application
  • 套用变更
  • 在主窗口IDE的右上角您可以看到小图标播放

  • 已选择早期定义的Go Application my未命名
  • 单击播放
  • 安喜:D
vcirk6k6

vcirk6k65#

假设您有一个包含src/sub目录和两个. go文件的项目:go和typetest.go都定义了相同的包"main"。其中一个(hello. go)还实现了函数main()。
要使它作为一个整体进行编译,您需要确保正确配置了两件事:GOPATH和运行/调试配置。
打开项目库/GOPATH设置:
为了戈格兰
文件-〉设置-〉转到
对于IntelliJ IDEA
文件-〉设置-〉语言和框架-〉转到-〉转到库
确保项目的GOPATH如下所示:
GOPATH settings
接下来,打开Run-〉Edit Configurations,确保您的配置如下所示:
Run/Debug configuration

相关问题