我在 windows 10 中使用 go 版本 go1.11.2 windows/amd64
我在桌面上有一个名为“GoPro”的文件夹,其中有 一个文件 - main.go 一个文件夹 - 模块
“模块”文件夹包含 一个文件 - Modules.go
文件夹结构
Desktop
|------->GoPro
|----->main.go
|----->Models
|---->Models.go
主.go
// desktop/GoPro/main.go
package main
import (
"./Models"
)
func main() {
Models.Printhello()
}
模型.go
// desktop/GoPro/Models
package Models
import "fmt"
func Printhello() {
fmt.Println("Hello")
}
如果尝试运行 main.go,我会收到以下错误,Go recongise the package but it saying undefined.
go run main.go
command-line-arguments
.\main.go:8:2: undefined: Models
该文件夹不在 GOPATH 中。我只是想在 main.go 的子文件夹中导入包
最佳答案
您可以选择 set up $GOPATH
并将您的库放在相对于 $GOPATH
或 use modules 的路径中.
对于模块,你可以这样做:
$ tree
.
├── go.mod
├── main.go
└── mylib
└── mylib.go
文件内容:
$ cat go.mod
module myproject.com
====
$ cat main.go
package main
import "myproject.com/mylib"
func main() {
mylib.Say()
}
====
$ cat mylib/mylib.go
package mylib
import "fmt"
func Say() {
fmt.Println("Hello from mylib")
}
附言使用小写字母 name packages/modules
关于go - 如何将本地目录中的包包含到 main.go 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54662508/