码迷,mamicode.com
首页 > 其他好文 > 详细

golang生成静态文件

时间:2017-07-05 19:58:29      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:标准   size   ace   mono   声明   space   echo   linux   文件   

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/目录中
 
然后就可以在自己的代码中像使用官方标准库一样使用第三方闭源包了.
 

golang生成静态文件

标签:标准   size   ace   mono   声明   space   echo   linux   文件   

原文地址:http://www.cnblogs.com/gccxl/p/7122939.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!