我已經在各個地方看到過這個討論,例如'使用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
你可以添加帶有眼鏡蛇的子命令,但它不會像預期的那樣產生多個二進制文件。 –