我在Go写一个图书馆.我打算发布它,主要要求是" 没有源代码 ".
为了测试,我创建了两个工作区,如下所示,
WS1
WS2
我的第一个工作区(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
我的问题:
在Golang中分发源是唯一的可能性吗?
为什么Go没有提供直接使用'.a'文件的规定?
如果保持Go的源是强制性的,为什么在Go的任何地方都没有提到这个小东西?(或)我在这里遗漏了什么吗?
在此先感谢您的帮助!
go ×1