我有一个非常简单的Go项目设置。
在根目录下,我有一个名为
go.mod
的文件和一个名为main.go
的文件以及一个名为main2
的文件夹。在main2
文件夹中,有一个名为main2.go
的文件。/
|_ go.mod
|_ main.go
|_ main2
|_ main2.go
我正在尝试从根目录运行go run命令
go run main2/main2.go
我遇到了错误,它的提示消息是:
package command-line-arguments不是主要包
有人能帮忙解决吗?
go run path/to/file.go
意味着你传递的文件是主包,并且有一个main
函数。如果你的主包在cmd/foo/main.go
中,很可能你正在导入其他包,或者主包中有其他包含从 main 调用的函数的文件。例如,如果cmd/foo/main.go
调用了cmd/foo/helpers.go
中的函数,则该文件不会被传递给go run
,因此这些函数将未定义,导致go run
错误。go run
编译并运行,所以只需go build ./cmd/foo
并运行二进制文件,更加简单和安全。 - Elias Van Ootegem