如何在同一个 main 包中运行包含多个文件的 Go 项目?
你好!我刚开始学习 Go 并遇到了一个问题。我有一个小项目,由多个文件组成,它们都在 `cmd` 文件夹中,并声明为 `package main`。结构如下:
```
myproject/
cmd/
main.go
helpers.go
config.go
```
在 `main.go` 中,我调用了 `helpers.go` 中的函数,例如:
```go
// main.go
package main
func main() {
msg := getMessage()
fmt.Println(msg)
}
```
```go
// helpers.go
package main
func getMessage() string {
return "Hello from helpers!"
}
```
当我尝试使用命令 `go run cmd/main.go` 运行项目时,出现错误:
```
# command-line-arguments
./main.go:6:14: undefined: getMessage
```
我明白 Go 只看到了一个文件。如何正确运行项目,使得 main 包中的所有文件一起编译?是否需要使用 `go build` 或者有其他方法?另外,如果文件变得很多,这在 Go 中是否是常见做法?