首先得到 protobuf 相应的包文件 ,在终端上输入如下
wget http://protobuf.googlecode.com/files/protobuf-2.5.0.tar.gz
下载完毕后进行解压
tar zxvf protobuf-2.5.0.tar.gz
进入到解压目录
cd protobuf-2.5.0
进行执行
./configure
make
make install
查看protobuf版本以测试是否安装成功
protoc --version
安装proto的go语言插件
go get code.google.com/p/goprotobuf/{proto,protoc-gen-go}
2.编写test.proto文件
package code.blackbeans.com;
message User{
required int32 uid = 1;
required string name = 2;
}
使用protoc --go_out=. xxx.proto
自己的目录下就会有对应的xxx.pb.go生成 ,将其放入到项目相应的包里面(与生成的.go文件开头的package名一致),就可以在项目中使用了
这样就可以在自己的.go文件中使用了
package main
import entry "code.blackbeans.com"
import proto "code.google.com/p/goprotobuf/proto"
import (
"fmt"
"log"
)
func main() {
user := &entry.User{
Uid: proto.Int32(1),
Name: proto.String("blackbeans"),
}
encObj, err := proto.Marshal(user)
if nil == err {
fmt.Println("length:", len(encObj))
tobj := &entry.User{}
e := proto.Unmarshal(encObj, tobj)
if nil == e {
fmt.Println(tobj.GetName())
} else {
log.Fatalln("decode fail ", e)
}
} else {
log.Fatalln("encode fail", err)
}
}
输出结果:
blackbeans-mac:main Xmx$ go run main.go
length: 14
blackbeans