如何在没有Go源代码的情况下使用/分发二进制软件包
基本上,我的文件夹结构如下:如何在没有Go源代码的情况下使用/分发二进制软件包,go,Go,基本上,我的文件夹结构如下: bin/ pkg/ linux_amd64/ github.com/user/ stringutil.a src/ github.com/user/ hello/ hello.go (main file) stringutil/ stringutil.go hello.g
bin/
pkg/
linux_amd64/
github.com/user/
stringutil.a
src/
github.com/user/
hello/
hello.go (main file)
stringutil/
stringutil.go
hello.go
是从stringutil.go
导入一些函数的主程序
运行go install
后,将在pkg
下创建stringutil.a
(如上所述)
我的问题是,既然我已经有了stringutil.a
,我是否可以在没有stringutil.go
源代码的情况下再次运行go安装
我是一名Java程序员,新手。通常在Java中,在编译过程中,我们可以将编译好的jar文件导入类路径并进行编译
我怎样才能在围棋中做同样的事情?如果我有一个编译包,
stringutil.a
,我如何将此文件分发给其他人并让他们使用,而不公开原始源代码?您将编译包放入了错误的文件夹中
Go工作区的pkg
文件夹包含编译包对象,这些对象根据编译到的目标体系结构组织到子文件夹中,例如linux\u amd64
或windows\u amd64
。其中,父包的路径如下,直接父文件夹是将已编译包对象放入其中的位置
检查安装包对象的位置,并镜像文件夹结构
因此,例如,如果您的包是path/to/parent/package/abc
,并且您编译到linux 64位,则应将其编译后的包文件放入如下文件夹:
myworkspace/pkg/linux_amd64/path/to/parent/package/abc.a
或在Windows 64位的情况下:
myworkspace/pkg/windows_amd64/path/to/parent/package/abc.a
本页提供了更多详细信息:
注意事项:
通过这样做,您将限制编译应用程序的可能目标,因为编译包对象仅适用于特定平台。在Go中分发软件包的首选方式是以源代码的形式。可能的副本