具有相同名称的库和二进制文件
设计一个也可以用作独立二进制文件的库时,会出现一个常见的挑战。虽然将库和二进制文件命名为相同的名称似乎合乎逻辑,但 Golang 构建系统通常分配不同的名称。
一种解决方案是将目录结构分为库的 tar 目录和二进制文件的 tarbin 目录。但是,这种方法会创建一个名为 tarbin 的二进制文件,而不是 tar。
更优雅的解决方案是将二进制文件嵌套在库目录中:
src/ tar/ tar.go # tar library tar/ main.go # tar binary
此结构会生成一个名为 tar 的二进制文件,并且一个名为 tar 的库。
在 GitHub 上下文中,目录结构变为:
src/ github.com/ you/ tar/ tar.go # tar library tar/ main.go # tar binary
此结构允许轻松安装二进制文件(go get install github.com/you/tar/tar)和库(go get install github.com/you/tar)。
根据所需的重要性,库和二进制文件可以在目录结构内交换。此外,将所有代码保存在单个树中可以方便地构建和测试:
go install ./... go test|fmt ./...
以上是如何构建同名的 Go 库和二进制文件?的详细内容。更多信息请关注PHP中文网其他相关文章!