protobuf基本操作1

最近领导分配了一个任务,这个工程挺高端的,主要以前从没有搞过,其中里面有protobuf,以前从来没有听说过这个东西,最近在网上看了一些高人的帖子,才知道protobuf是什么云云了,我的理解是,例如我们要用C++写个什么工程,C++是面向对象的,我们要写很多类,估计都得写上上百行,上千行的代码,但是现在用这个protobuf,就可以省很多是,我们只需要写消息包,然后编译,protobuf就会根据这个消息包自动生成两个文件.cc和.h,.h这两个文件中就有很多类,供我们调用。

现在说明怎样在Ubuntu下安装protobuf。网上有人说,他用了很多版本的protobuf都没有成功,最终用的2.5.0版本才成功,于是我就直接安装了这个版本,至于其他版本成不成功,我就不知道了。首先下载protobuf源码包

在Ubuntu的终端里输入:$wget http://protobuf.googlecode.com/files/protobuf-2.5.0.tar.gz  

这是在官网下载,但是我等了很长时间都没有下载下来,最后我在CSDN上下载下来了

下载之后解压: $tar xvzf protobuf-2.5.0.tar.gz   

进入到解压后的目录: $cd protobuf-2.5.0

进行执行 :   $ ./configure   

在执行./configure这个命令之前最好把vim ,g++,make安装好,不然在执行./configure的时候可能会出现错误,上面三个安装的命令:$sudo apt-get install vim  $sudo apt-getinstall g++     $sudo apt-get install make 

  ./configure成功之后,接下来是如下几步:

$make

$make check

$make install     //在执行这一步的时候,我出现了错误,错误的意思是执行的权限不够,如果是这样的话,$make install  这条命名就换成$sudomake install

下面我们要修改一下配置文件:$vim  ~/.profile

在打开的文件中,在文件末尾添加如下代码:

exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

然后保存退出,接下来执行:    $ source  ~/.profile

使刚才修改的配置文件生效,接下来执行: $protoc --version

如果上面的步骤一切顺利的话,那么就会在终端显示protobuf的版本号,如下

下面我们来测试一下,在测试之前我们最好先建立一个文件夹,例如上面的proto,接下的操作都在这个文件夹下进行。

我们先用vim创建并编辑.proto文件,例如: $  vim msg.proto

内容如下:

然后执行下面的命令: $ protoc -I=.  --cpp_out=. msg.proto

执行这条命名之后,在当前目录下就会生成如下的两个文件: msg.pb.cc msg.pb.h

这两个文件就是根据上面的那个msg.proto文件生成了,里面有类的声明和类的实现,我们可以进入这两个文件。研究一下,这里就不在说明了。然后我们就可以调用类和里面的函数实现自己的功能了,下面是两个简单的测试文件:

我们先创建: $  vim write.cc

内容如下:

然后编译write.cc,命名如下:

$ g++ msg.pb.cc write.cc -o write  `pkg-config --cflags --libs protobuf`-lpthread

执行生成的write文件,命令为:

$ ./write

可看到生成的msg.pb文件,这个文件是由fstreamoutput(“./msg.pb”,ios::out|ios::trunc|ios::binary)函数生成的

 

下面在创建一个文件:$ vim reader.cc

内容如下:

编译reader.cc文件:命令为:

$ g++ msg.pb.cc reader.cc -o reader  `pkg-config --cflags --libs protobuf`-lpthread

然后执行生成的reader文件。命令如下:

./reader

在终端就会打印出:

101

Hello

上面在生成可执行文件的过程,都是我们一条一条命令的输入,我们可以写Makefile,然后执行一条make命令,就可以自动生成可执行文件,

编写Makefile文件: $ vimMakefile

内容如下:

编写完之后,执行:$make

就会自动生成可执行文件write和reader

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值