Golang 不会重新编译某些文件

我刚刚收到一个错误:


服务器

server/server.go:73: 未定义: foo.MyName


起初我不明白,我试图更改我的函数的名称等。所以我创建了一个名为 MyName() 的函数,它返回一个字符串,这是我的名字。


但是,错误又出现了.. 一个多小时后,我试图注释掉包 foo 中的所有代码!我想说f ** k,此刻...... #PS:我还评论了server.go:73行......并且......它编译并且完全有效?!


我评论了我的代码,但它似乎还在这里?!所以现在我的问题是:


Golang 是否有重新编译某些文件的问题?


#-------------------------------------


工作区


pkg


    linux_amd64


src


   algo  database_sql  github.com  golang.org  GoogleAPI  googlemaps.github.io  main  main.go  models  myDebug  router  server

我正在制作“go build main.go”


我还阅读了如何编写 Go 代码但没有找到任何解决方案......


一些提示?


凤凰求蛊
浏览 180回答 1
1回答

蛊毒传说

所以我猜你的开发树看起来像这样: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 中的错误,通常您不希望库中的更改破坏您的代码,因此您必须记住在尝试您的代码之前安装新版本的库。
打开App,查看更多内容
随时随地看视频慕课网APP