我正在构建一个库,但我也希望它可以作为一个独立的二进制文件使用.
例如,假设我正在构建Tar的实现.Tar通常用作命令,但也可以用作库.直观地说,我会做这样的事情:
src/
tar/
tar.go # belongs to package tar
main.go # imports tar and provides a main function
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用.从文档中,似乎"命令"应该具有与库不同的名称.根据此示例调整示例,我有以下目录结构:
src/
tar/
tar.go # belongs to package tar
tarbin/
main.go # imports tar and provides a main function
Run Code Online (Sandbox Code Playgroud)
然而,这将创建一个名为命令tarbin,而不是tar在$GOPATH/bin.我发现的解决方法是做go build -o $GOPATH/bin/tar tar,但我觉得我做的事情非常糟糕.有没有更好的办法?
注意:我很清楚它tar包含在标准库中,我只是以它为例.