猿问

Golang - 我必须如何为包含示例程序的包安排我的工作区?

我仍在尝试了解 Go 工作区布局。我有一个包todinfo和一个使用它的示例程序,untod.


我目前有这样的目录安排:


$GOPATH

+- bin...

+- pkg ...

+- src

   +- github.com

      +- longborough

         +- (others)...

         +- todinfo

            +- todinfo.go

            +- untod.go

我最初在不同的目录中开发了这两个程序。但是,由于untod它确实是 todinfo 包的一部分,因此将其打包为单个项目,在同一目录中似乎更为明智。


但是当我尝试安装时(为了清楚起见,我将回复分成三行):


D:\Development\Go\src\github.com\longborough\todinfo>go install

 can''t load package: package github.com/longborough/todinfo: 

 found packages todinfo (todinfo.go) and main (untod.go) 

 in D:\Development\Go\src\github.com\longborough\todinfo

我希望我弄错了,但这闻起来有点像 Java,至少对于外行来说。


我究竟做错了什么?我应该使用哪些 Go 命令来安装包然后安装示例?或者,正确的目录安排是什么?


梵蒂冈之花
浏览 194回答 1
1回答

元芳怎么了

这也让我。可以这样想:untod不是todinfo包的一部分,它是todinfo包(库)的消费者。事实上,main它根本不是一个真正的包,只是一个标记,表明它有一个入口点,应该编译成二进制文件。TLDR:你可以放在untod任何地方。在 root 中可能是明智的:它会被命名为你的最后一个 dir 组件$GOPATH。或者,cmd/untod/untod.go如果您有多个二进制文件,请将其放入。经过一些更多的开发,您可能会考虑制作一个单独的 repo,github.com/longborough/todinfo-bins以便将它们分开。
随时随地看视频慕课网APP

相关分类

Go
我要回答