我正在构建一个库,但我也希望它可以用作独立的二进制文件。
例如,假设我正在构建 Tar 的实现。Tar 通常用作命令,但也可以用作库。直觉上,我会做这样的事情:
src/
tar/
tar.go # belongs to package tar
main.go # imports tar and provides a main function
这似乎不起作用。从文档看来,“命令”应该有一个与库不同的名称。将那里给出的示例改编为这个示例,我有以下目录结构:
src/
tar/
tar.go # belongs to package tar
tarbin/
main.go # imports tar and provides a main function
但是,这会创建一个名为 的命令tarbin
,而不是tar
in $GOPATH/bin
。我发现的解决方法是做go build -o $GOPATH/bin/tar tar
,但我觉得我做错了可怕的事情。有没有更好的办法?
注意:我很清楚它tar
包含在标准库中,我只是将其用作示例。