Compilation go build工作正常,但go run失败

Compilation go build工作正常,但go run失败,compilation,compiler-errors,go,Compilation,Compiler Errors,Go,我在主程序包中的一个目录下有几个文件: 梅因,加油 config.go server.go 当我这样做时:“go build”程序构建得非常完美,运行良好。 当我这样做的时候:“开始运行main.go”它失败了 输出: # command-line-arguments ./main.go:7: undefined: Config ./main.go:8: undefined: Server 未定义的符号为结构,且大写,因此应导出 我的Go版本:go1.1.2 linux/amd64这应该可以工

我在主程序包中的一个目录下有几个文件:

梅因,加油 config.go server.go

当我这样做时:“go build”程序构建得非常完美,运行良好。 当我这样做的时候:“开始运行main.go”它失败了

输出:

# command-line-arguments
./main.go:7: undefined: Config
./main.go:8: undefined: Server
未定义的符号为结构,且大写,因此应导出

我的Go版本:go1.1.2 linux/amd64

这应该可以工作

go run main.go config.go server.go

并且它符合那些并且仅符合那些解释原始帖子中缺失符号的文件。

您可以将其执行为:

go run .

因此,您不必手动包含所有文件。

对于
main.go
config.go
server.go
包是什么?如果要运行它们,这三个都必须有
package main
。它们都有package main。请记住
go run
是相当有限的。您应该使用
go build
来构建包,并使用./packagename或packagename(如果在您的路径上)运行包。您可以轻松构建和执行,而无需go run:“go build&./packagename”这确实有效,但最重要的是外部导入(您在import()中输入的那些)不用我在命令行中指定它们,就可以完美地工作。@RoelVanNyen这一点也不奇怪-因为它们是导入的,go工具链知道在哪里查找它们,但是如果配套软件包是由go自动导入的,那就太好了run@RoelVanNyen你为什么不建议
go run*.go
?这对我有一个副作用:
$go run*.go
go run:cannot run*\u test.go文件(main\u test.go)
围绕这一点展开了讨论