我计划分发它,主要要求是' without source codes ' .
为了测试,我创建了两个工作区,如下所示,
WS1
bin /
pkg / linux_amd64 / lib.a
src / lib / src.go
WS2
bin /
pkg /
src / main / 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) )
以上消息表明我们应该保留源文件 . Precompiled binary packages alone cannot be used directly .
根据网上的一些建议,我们可能会保留一些虚拟源,其时间戳值小于二进制包的时间戳 . 但是,对我们来说,这似乎不是一个可行的解决方案 . 如果虚拟源的时间戳不幸更新会发生什么?
My Questions:
在Golang中分发源是唯一的可能性吗?
为什么Go没有提供直接使用'.a'文件的规定?
如果保留Go的强制来源,为什么在Go的任何地方都没有提到这个小东西? (或)我在这里遗漏了什么吗?
在此先感谢您的帮助!