我已经在各个地方看到过这个讨论,例如'使用cmd/foo,cmd/bar'类型的文件夹结构。你如何编写一个包含多个二进制文件的包?
这对我不起作用。
这工作:
$ du -a
8 ./src/cmd/bin1/main.go
8 ./src/cmd/bin1
8 ./src/cmd/bin2/main.go
8 ./src/cmd/bin2
16 ./src/cmd
8 ./src/shared/foo/foo.go
8 ./src/shared/foo
8 ./src/shared
24 ./src
,并构建它:
go build ./src/cmd/bin2
go build ./src/cmd/bin1
不过,我想不出有什么变化上:
go build ./src/...
我可能需要建立所有这样的二进制文件在一步。
这种布局:
$ du -a
8 ./cmd/bin1/main.go
8 ./cmd/bin1
8 ./cmd/bin2/main.go
8 ./cmd/bin2
16 ./cmd
8 ./src/shared/foo/foo.go
8 ./src/shared/foo
8 ./src/shared
8 ./src
24 .
似乎完全无法使用。 go build ...
命令的组合似乎不会构建bin1或bin2。
我能得到的最好的是go build cmd/bin1/main.go
,它给了我一个名为'main'的二进制。没有帮助。
因此,具体而详细地,包括go build
命令,实际上构建了单个的二进制文件,你如何做到这一点?
...为什么人们不断给予使用顶级cmd
文件夹的默认建议?你如何构建这些二进制文件?
查看'https:// github.com/spf13/cobra',你会将它指向'cmd/main.go',其他命令源文件将被用作例如。 '主要的doX''主要的printY' – Plato
你可以添加带有眼镜蛇的子命令,但它不会像预期的那样产生多个二进制文件。 –