这听起来很愚蠢,但我已经尝试构建我的新 golang 项目一段时间了,但我遇到了以下错误
can't load package: package github.com/kuskmen/yamq/cmd/yamq-client: found packages main (main.go) and yamqclient (yamq-client.go) in C:\projects\yamq\cmd\yamq-client
我知道这应该很容易修复,但我来自 .NET,我在 Go 项目及其依赖项解析模型方面仍然没有经验,因此遇到了困难。
我的项目结构是这样的
/yamq
/cmd
/yamq-client // yamq client application binary
main.go // package main
yamq-client.go // package yamqclient
/yamq-server // yamq server application binary
main.go // package main
yamq-server.go // package yamqserver
go.mod // contains only "module github.com/kuskmen/yamq" for now
... // some library files that will probably be moved to /shared folder
到目前为止一切顺利,当我在最外层目录 (/yamq ) 中执行 go build
时,它正在成功构建(或者至少没有显示任何错误),但是当我尝试构建yamq-client
或 yamq-server
二进制文件我得到了上述错误,每次我尝试用谷歌搜索它或找到有用的东西时,我都会得到一些旧文章或答案可以追溯到 2013 年-2016 暗示了一些关于 $GOPATH
等的东西,这里不应该是这种情况,因为我正在尝试使用 go 模块。
帮助 .NET 开发人员加入 Go 社区,向他解释模块的工作原理,因为我发现了 this和 this没用,或者至少我错过了重点,在此先感谢!
最佳答案
根据我上面的评论跟进:
来自 https://golang.org/doc/code.html :
- Go programmers typically keep all their Go code in a single workspace.
- A workspace contains many version control repositories (managed by Git, for example).
- Each repository contains one or more packages.
- Each package consists of one or more Go source files in a single directory.
- The path to a package's directory determines its import path.
关于go - 如何解决 Go 项目中嵌套应用程序二进制文件中的依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54681737/