1 回答
TA贡献1895条经验 获得超3个赞
所以我猜你的开发树看起来像这样:
src
├───algo
├───database_sql
├───github.com
├───golang.org
├───GoogleAPI
├───googlemaps.github.io
├───main
├───main.go
├───models
├───myDebug
├───router
└───server
└───server.go
正如您在How to Write Go Code 中看到的那样,您应该有一个项目文件夹,所以 main.go 应该是这样someproject/main.go,然后您就可以使用它go build来构建整个项目。
理想情况下,您希望将所有项目都放在一个文件夹中,以存放他们的网址,例如github.com/yourname/projectname. 我建议您遵循此约定,即使特定项目不会公开访问。我将所有项目(即使是不在 github 中的项目)都保存在我的github/my user文件夹中。通过这种方式,您可以更轻松地找到所有软件并对其进行分类。
如果您想构建一个项目及其所有依赖项(在本例中为 server/server.go),您可以这样做 go build ./...
您还可以进入服务器包并执行 go install安装构建和重新安装包。
所以你应该有这样的东西:
GOPATH
├───bin
| └───main (this will have the name of the folder)
├───pkg (this routes match the ones on src)
| └───linux_amd64
| └───server.a
└───src
├───algo
├───database_sql
├───github.com
├───golang.org
├───GoogleAPI
├───googlemaps.github.io
├───main
| └───main.go
├───models
├───myDebug
├───router
└───server
└───server.go
然后去src/main/和做go build ./...编译所有的依赖关系。理想情况下,您会希望将go install ./...库安装在正确的路径上,并且您的二进制文件也会在正确的路径而不是src文件夹中创建。如果这样做,您将需要运行二进制文件bin/main。我建议您添加GOPATH/bin到您的路径,这样您就可以安装您的软件并直接运行它而无需进入 bin 文件夹。
您导入或使用服务器包的方式可能存在一些错误。这是我能做到的最好的,没有你发布你的代码。
编辑:在进一步考虑之后,我相信我发现了错误。您正在go build构建整个项目,并且在某些时候您go install在服务器库上做了。所以现在go build使用的是已经编译的库版本pkg,所以如果你想解决问题,请go install在服务器文件或go install ./...主文件夹上进行。
这不是 Go 中的错误,通常您不希望库中的更改破坏您的代码,因此您必须记住在尝试您的代码之前安装新版本的库。
- 1 回答
- 0 关注
- 195 浏览
添加回答
举报