Go file not 运行 不在主包中
Go file not running which is not in main package
我有一个非常简单的 Go 项目设置。
在根目录中,我有 go.mod
文件和 main.go
以及一个名为 main2
的文件夹。 main2
文件夹内有 main2.go
个文件。
/
|_ go.mod
|_ main.go
|_ main2
|_ main2.go
我正在尝试从根目录 运行 执行 运行 命令
go run main2/main2.go
它抛出错误:
package command-line-arguments is not a main package
有人可以帮忙吗?
您的 main2.go 文件的包必须是 main。当您的项目中有一个 main 包和一个函数 main 时,编译器知道它将被编译为可执行文件,而不是库。
所以尝试在 main2/main2.go 文件中将 package command-line-arguments 更改为 package main。
Golang 进入可执行文件的入口点是通过单个 main() 函数。如果你想 运行 单个可执行文件的不同逻辑路径,你可以使用 main() 作为使用命令行参数到其他包的路由函数:
package main
import (
"os"
// Your child packages get imported here.
)
func main() {
// The first argument
// is always program name
// So os.Args[1] is the first dynamic argument
arg1 := os.Args[1]
// use arg1 to decide which packages to call
if arg1 == "option1" {
// option1 code executes here.
}
if arg1 == "option2" {
// option2 code executes here.
}
}
然后你可以运行你的程序,比如:
go run main.go option1
Program execution
A complete program is created by linking a single, unimported package called the main package with all the packages it imports, transitively. The main package must have package name main and declare a function main that takes no arguments and returns no value.
我有一个非常简单的 Go 项目设置。
在根目录中,我有 go.mod
文件和 main.go
以及一个名为 main2
的文件夹。 main2
文件夹内有 main2.go
个文件。
/
|_ go.mod
|_ main.go
|_ main2
|_ main2.go
我正在尝试从根目录 运行 执行 运行 命令
go run main2/main2.go
它抛出错误:
package command-line-arguments is not a main package
有人可以帮忙吗?
您的 main2.go 文件的包必须是 main。当您的项目中有一个 main 包和一个函数 main 时,编译器知道它将被编译为可执行文件,而不是库。
所以尝试在 main2/main2.go 文件中将 package command-line-arguments 更改为 package main。
Golang 进入可执行文件的入口点是通过单个 main() 函数。如果你想 运行 单个可执行文件的不同逻辑路径,你可以使用 main() 作为使用命令行参数到其他包的路由函数:
package main
import (
"os"
// Your child packages get imported here.
)
func main() {
// The first argument
// is always program name
// So os.Args[1] is the first dynamic argument
arg1 := os.Args[1]
// use arg1 to decide which packages to call
if arg1 == "option1" {
// option1 code executes here.
}
if arg1 == "option2" {
// option2 code executes here.
}
}
然后你可以运行你的程序,比如:
go run main.go option1
Program execution A complete program is created by linking a single, unimported package called the main package with all the packages it imports, transitively. The main package must have package name main and declare a function main that takes no arguments and returns no value.