golang undefined func

不同的.go文件数据同一个包:

.
├── lib.go
└── main.go

lib.go下有一个Test1函数:

 package main
 
 import "fmt"
 
 func Test1() {
     fmt.Println("lib.go Test1")
 }

main.go如下:

package main
import(
    "fmt"
)
func main() {
    Test1()
}

如果想不编译直接运行,即执行:

go run main.go

会报错:

# command-line-arguments
./main.go:12: undefined: Test1

原因是go run main.go,只会编译执行main.go文件,不会编译lib.go,所以lib.go中的函数没有编译到main.go中。

参考

comments powered by Disqus