我仍在设法绕过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命令来安装软件包,然后安装示例?或者,正确的目录安排是什么?
最佳答案
这也给我。这样想:untod
不是todinfo
包的一部分,它是todinfo
包(库)的使用者。实际上,main
根本不是一个包,只是一个标记,它表示它有一个入口点,应该编译为二进制文件。
TLDR:您可以将untod
放在任何地方。在根目录中可能是明智的:然后将其命名为$GOPATH
的最后一个dir组件。或者,如果您有多个二进制文件,请将其放在cmd/untod/untod.go
中。
经过更多开发后,您可以考虑制作一个单独的存储库(如github.com/longborough/todinfo-bins
)以使其分开。
Dave Cheney has some decent advice on the subject.
关于go - Golang-如何使用示例程序来安排我的工作区?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35135081/