我正在构建一个库,但我也希望它可以作为独立的二进制文件使用.
例如,假设我正在构建Tar的实现.tar通常用作命令,但也可以作为库使用.凭直觉,我会这样做:
src/
tar/
tar.go # belongs to package tar
main.go # imports tar and provides a main function
不过,这似乎不管用.从documentation开始,似乎"命令"应该有一个与库不同的名称.将那里给出的示例改编为此示例,我有以下目录 struct :
src/
tar/
tar.go # belongs to package tar
tarbin/
main.go # imports tar and provides a main function
但是,这会创建一个名为tarbin
的命令,而不是$GOPATH/bin
中的tar
.我发现的解决办法是时速go build -o $GOPATH/bin/tar tar
,但我感觉我做的事情大错特错.有没有更好的方法?
我很清楚标准库中包含了tar
,我只是举个例子.