如何在golang中使用本地包?

时间:2018-04-23 06:54:43

标签: go

以下是两个.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包中使用本地包?

2 个答案:

答案 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