golang生成静态文件

a文件是go install 产生的,目前无法反编译获得源码,就算获得难度也是极大
将a文件对外发布出去,其他人便可正常像引用官方包一样引用它
如:我们写了一个包,将其a文件交给客户,不将源码交给客户,客户便可像正常引用go官方包一样正常引用第三方包
 
将要发布的闭源包.a文件放到 $GOROOT/pkg/linx_amd/ 目录中.
再将发布包的源码保留只有包声明的源文件放到 $GOROOT/src/say/ 目录中.
 
操作如下:
*发布方*
例如有say包要发布:
1,
$cd $GOPATH/src/say
$cat say.go
// say something package
package say
import "fmt"
// private function
func say(){
fmt.Println("hello....world")
}
 
首先在say.go文件同级目录下编译生成say包的.a文件(如果要发布到多种系统架构,需要修改编译参数交叉编译出多种发布文件)
$go install
$ls $GOPATH/pkg/linux_amd/say.a(say.a文件会自动生成在$GOPATH/pkg/linux_amd中)
 
2,
其次修改发布包对应的源文件
最简单的修改方式
$:echo 'package say' > say.go
 
3,
最后发布方提供两份文件:
编译生成say包的.a文件和修改之后的源文件
say.a
say.go
 
*使用方*
 
1,复制say.a文件到$GOROOT/pkg/linux_amd/目录中
 
2,复制say.go文件到$GOROOT/src/say/目录中
 
然后就可以在自己的代码中像使用官方标准库一样使用第三方闭源包了.
 

转载于:https://www.cnblogs.com/gccxl/p/7122939.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值