相关疑难解决方法(0)

直接使用二进制包

我在Go写一个图书馆.我打算发布它,主要要求是" 没有源代码 ".

为了测试,我创建了两个工作区,如下所示,

WS1

  • 斌/
  • PKG/linux_amd64/lib.a
  • SRC/LIB/src.go

WS2

  • 斌/
  • 包装/
  • 的src /主/ main.go

我的第一个工作区(WS1)是实际的虚拟库,它具有一些实用功能.第二个工作区(WS2)具有使用WS1中的包(lib.a)的主要功能.

在从WS1中删除源代码之前,一切正常.如果我在WS1中删除目录/lib/src.go,我在go build期间遇到以下错误,

main.go:5:2:在以下任何一个中找不到软件包"lib":/ usr/local/go/src/pkg/lib(来自$ GOROOT)../Testing/ws1/src/lib(来自$ GOPATH)

以上消息表明我们应该保留源文件.单独的预编译二进制包不能直接使用.

根据网上的一些建议,我们可能会保留一些虚拟源,其时间戳值小于二进制包的时间戳.但是,对我们来说,这似乎不是一个可行的解决方案.如果虚拟源的时间戳不幸更新会发生什么?

我在这里讨论过类似的问题, https://github.com/golang/go/issues/2775

我的问题:

  1. 在Golang中分发源是唯一的可能性吗?

  2. 为什么Go没有提供直接使用'.a'文件的规定?

  3. 如果保持Go的源是强制性的,为什么在Go的任何地方都没有提到这个小东西?(或)我在这里遗漏了什么吗?

在此先感谢您的帮助!

go

18
推荐指数
3
解决办法
5713
查看次数

标签 统计

go ×1