基本上,我的文件夹结构如下:
bin/
pkg/
linux_amd64/
github.com/user/
stringutil.a
src/
github.com/user/
hello/
hello.go (main file)
stringutil/
stringutil.gohello.go是从stringutil.go中导入一些函数的主程序。
运行go install之后,stringutil.a将在pkg下创建(如上面所示)。
我的问题是,我是否可以在没有stringutil.go源代码的情况下再次运行stringutil.go,因为我已经有了stringutil.a
我是一名Java程序员,刚开始工作。通常在Java中,在编译期间,我们可以将编译好的jar文件导入类路径并进行编译。
我怎么才能在围棋里做同样的事?如果我有一个编译好的包,stringutil.a,我如何将这个文件分发给某个人,让他们在不公开原始源代码的情况下使用它?
发布于 2015-05-26 10:16:56
您将编译的包放入错误的文件夹中。
Go工作区的pkg文件夹包含编译后的包对象,这些包对象根据编译到的目标体系结构组织成子文件夹,例如linux_amd64或windows_amd64。在此内部,父包的路径遵循,直接父文件夹是将编译的包对象放入的位置。
检查go install放置包对象的位置,并镜像该文件夹结构。
因此,例如,如果您的包是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代码
备注:
通过这样做,您将限制编译应用程序的可能目标,因为编译的包对象仅适用于特定平台。在Go中分发包的首选方法是源代码形式。
https://stackoverflow.com/questions/30455537
复制相似问题