以下是两个.go
个文件。
├── lib.go
└── main.go
lib.go
有一个包libtest
。
$ cat lib.go
package libtest
import (
"fmt"
)
func TestLibFunc() {
fmt.Println("This is test library function")
}
main.go
有一个包main
。
$ cat main.go
package main
import (
"libtest"
)
func main() {
libtest.TestLibFunc()
}
当我尝试构建它们时,它却失败了。
$ go build *.go
can't load package: package main: found packages libtest (lib.go) and main (main.go) in /Users/dev/work/tmp/local-package
如何在main
包中使用本地包?
答案 0 :(得分:2)
您需要将每个包放在一个单独的子目录中。所以你的目录结构把lib.go放在project/lib
中,将main.go放在project/cmd
中。它应该可以工作。
答案 1 :(得分:0)
首先创建一个单独的包libtest
并将lib.go
放在那里。然后,您应该提供libtest
的完整路径,否则您的导入会立即搜索不存在的$GOPATH/src/libtest
或/usr/local/Cellar/go/<version>
。
所以你应该给import project/libtest