linux下安装protobuf教程+示例(详细)

时间:2022-08-31 19:18:39
1 在网站 http://code.google.com/p/protobuf/downloads/list上可以下载 Protobuf 的源代码。然后解压编译安装便可以使用它了。
(我这里不能*,直接上传了protobuf-2.6.1.zip到服务器上)
安装步骤如下所示:
 tar -xzf protobuf-2.1.0.tar.gz 
 cd protobuf-2.1.0 
 ./configure --prefix=/usr/local/protobuf
 make 
 make check 
 make install 
 
 2 > sudo vim /etc/profile
 添加
export PATH=$PATH:/usr/local/protobuf/bin/
export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/
保存执行
source /etc/profile

同时 在~/.profile中添加上面两行代码,否则会出现登录用户找不到protoc命令

3 > 配置动态链接库路径
sudo vim /etc/ld.so.conf
插入:
/usr/local/protobuf/lib

4 > su  #root 权限
ldconfig

5> 写消息文件:msg.proto
  1. #include "msg.pb.h"  
  2. #include <fstream>  
  3. #include <iostream>  
  4. using namespace std;  
  5.   
  6. int main(void)   
  7. {   
  8.   
  9.     lm::helloworld msg1;   
  10.     msg1.set_id(101);   
  11.     msg1.set_str("hello");   
  12.     fstream output("./log", ios::out | ios::trunc | ios::binary);   
  13.   
  14.     if (!msg1.SerializeToOstream(&output)) {   
  15.         cerr << "Failed to write msg." << endl;   
  16.         return -1;   
  17.     }          
  18.     return 0;   
  19. }  
编译 write.cc 
 g++  msg.pb.cc write.cc -o write  `pkg-config --cflags --libs protobuf` -lpthread
 
执行write 
./write, 可以看到生成了log文件

7> 写反序列化的进程
reader.cc
  1. all: write reader  
  2.   
  3. clean:  
  4.     rm -f write reader msg.*.cc msg.*.h *.o  log  
  5.   
  6. proto_msg:  
  7.     protoc --cpp_out=. msg.proto  
  8.   
  9.   
  10. write: msg.pb.cc write.cc  
  11.     g++  msg.pb.cc write.cc -o write  `pkg-config --cflags --libs protobuf`  
  12.   
  13. reader: msg.pb.cc reader.cc  
  14.     g++  msg.pb.cc reader.cc -o reader  `pkg-config --cflags --libs protobuf`