首页 > 代码库 > golang生成静态文件
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/目录中
然后就可以在自己的代码中像使用官方标准库一样使用第三方闭源包了.
golang生成静态文件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。