GoLang二进制库分发保护源码

GoLang二进制库分发保护源码

浏览:49

首先创建一个Package,并写入代码:

//go:binary-only-package

package mypkg

import "fmt"

func Print(s string) {
	fmt.Println(s)
}

注意第一行的注释,然后执行:go install 编译这个包,然后我们删除掉实际的代码(当然函数注释,调用方法等等还是需要写上去的,否则调用者就不知道如何用了);当然,包的声明语句 package mypkg 还要保留。

//go:binary-only-package

package mypkg

下面测试调用这个被删除源码的包:

package main

import "mypkg"

func main() {
	mypkg.Print("Go!")
}

go build 的时候就会跳过重现编译代码的步骤,直接使用.a文件了(.a文件里面含有导入信息)。

发布

到$GOPATH/pkg/系统平台/mypkg目录下找到mypkg.a,和$GOPATH/src/mypkg/mypkg.go文件分发给你的客户.告知调用者按相同的目录分别复制相同的文件即可.

扫描本文章二维码可手机访问: