E4067

E4067#

main 包中缺少 main 函数。

在 MoonBit 中,包分为 main 包和非 main 包两类。非 main 包通常作为库,为其他包提供功能;main 包则是程序的入口。因此,main 包应该包含一个作为程序入口的 main 函数。

错误示例#

假设在包 main 中:

main/moon.pkg:

options(
  "is-main": true,
)

main/main.mbt:

///|
pub fn helper() -> Unit {
  ()
}

建议#

你可以在 main 包中添加一个 main 函数:

main/main.mbt:

///|
priv struct A(Int)

///|
fn A::to_int(self : A) -> Int {
  self.0
}

///|
fn main {
  let a = A(42)
  println(a.to_int())
}

或者,您可以通过在包配置文件中将 "is-main" 设置为 false 来将包设置为非主包。

main/moon.pkg:

options(
  "is-main": false,
)