golang可以使用二进制形式发布包提供给第三方使用
提供一个编译好的库,同时为这个package提供一个源文件。这个源文件不用包含任何代码逻辑,
只需增加//go:binary-only-package
指令即可(注意//后面没有空格)。
这样第三方在使用的时候,就可以直接使用这个二进制的库。
示例
Sample Binary-Only Packages
1
2
3
4
5
6
7
8
|
> cat $GOPATH/src/github.com/tcnksm/say/hello.go
package say
import "fmt"
func Hello(name string) string {
return fmt.Sprintf("Hello, %s!", name)
}
|
1
|
> go build -o $GOPATH/pkg/darwin_amd64/github.com/tcnksm/say.a -x
|
1
2
3
4
|
> cat $GOPATH/src/github.com/tcnksm/say/hello.go
//go:binary-only-package
package say
|
1
2
3
4
5
6
7
8
9
10
11
12
|
> cat $GOPATH/src/hello.go
package main
import (
"fmt"
"github.com/tcnksm/say"
)
func main() {
say.Hello("Joe")
}
|
参考