goprotocbuf的安装和使用

时间:2023-03-08 16:07:00

首先得到 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文件

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