请问一个初级问题:go install 后引用包的问题

liuyugan · 2016-07-08 02:55:42 · 1657 次点击

源码必须存在。

有一种解决方案,当然比较麻烦:

将要发布的闭源包.a文件放到 $GOROOT/pkg/$GOOS_$GOARCH/ 目录中.

再将发布包的源码保留只有包声明的源文件放到 $GOROOT/src/pkg/ 目录中.

操作如下:

发布方法

例如有say包要发布:

$cd $GOPATH/src/say
$cat say.go
// say something package
package say
import "fmt"
// private function
func say(str string){
    fmt.Println(str)
}
// Say hi
func Hi(){
    say("Hi......")
}
// Say hello to someone
func Hello(me string){
    say("Hello" + me)
}

首先编译生成say包的.a文件(如果要发布到多种系统架构,需要修改编译参数交叉编译出多种发布文件)

$go install $ls $GOPATH/pkg/$GOOS_$GOARCH/say.a

其次修改发布包对应的源文件(两种方式任选)

最简单的修改方式

$echo 'package say' > say.go 保留导出的接口与API注释供查看使用

$cat > say.go <
最后发布方提供两份文件: 编译生成say包的.a文件和修改之后的源文件 say.a say.go
#1
更多评论

感谢感谢,确实如您所说,比较麻烦。我还是老老实实的git clone src吧,再次感谢!

#2