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")
}

参考