linux下安装protobuf教程+示例(详细)
2012-04-12 23:33
686 查看
1 在网站 http://code.google.com/p/protobuf/downloads/list上可以下载 Protobuf 的源代码。然后解压编译安装便可以使用它了。
安装步骤如下所示:
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
将消息文件msg.proto映射成cpp文件
protoc -I=. --cpp_out=. msg.proto
可以看到生成了
msg.pb.h 和msg.pb.cc
6> 写序列化消息的进程
write.cc
编译 write.cc
g++ msg.pb.cc write.cc -o write `pkg-config --cflags --libs protobuf` -lpthread
执行write
./write, 可以看到生成了log文件
7> 写反序列化的进程
reader.cc
编译:g++ msg.pb.cc reader.cc -o reader `pkg-config --cflags --libs protobuf` -lpthread
执行./reader 输出 :
101
hello
8> 写Makefile文件
安装步骤如下所示:
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
package lm; message helloworld { required int32 id = 1; // ID required string str = 2; // str optional int32 opt = 3; //optional field }
将消息文件msg.proto映射成cpp文件
protoc -I=. --cpp_out=. msg.proto
可以看到生成了
msg.pb.h 和msg.pb.cc
6> 写序列化消息的进程
write.cc
#include "msg.pb.h" #include <fstream> #include <iostream> using namespace std; int main(void) { lm::helloworld msg1; msg1.set_id(101); msg1.set_str("hello"); fstream output("./log", ios::out | ios::trunc | ios::binary); if (!msg1.SerializeToOstream(&output)) { cerr << "Failed to write msg." << endl; return -1; } return 0; }
编译 write.cc
g++ msg.pb.cc write.cc -o write `pkg-config --cflags --libs protobuf` -lpthread
执行write
./write, 可以看到生成了log文件
7> 写反序列化的进程
reader.cc
#include "msg.pb.h" #include <fstream> #include <iostream> using namespace std; void ListMsg(const lm::helloworld & msg) { cout << msg.id() << endl; cout << msg.str() << endl; } int main(int argc, char* argv[]) { lm::helloworld msg1; { fstream input("./log", ios::in | ios::binary); if (!msg1.ParseFromIstream(&input)) { cerr << "Failed to parse address book." << endl; return -1; } } ListMsg(msg1); }
编译:g++ msg.pb.cc reader.cc -o reader `pkg-config --cflags --libs protobuf` -lpthread
执行./reader 输出 :
101
hello
8> 写Makefile文件
all: write reader clean: rm -f write reader msg.*.cc msg.*.h *.o log proto_msg: protoc --cpp_out=. msg.proto write: msg.pb.cc write.cc g++ msg.pb.cc write.cc -o write `pkg-config --cflags --libs protobuf` reader: msg.pb.cc reader.cc g++ msg.pb.cc reader.cc -o reader `pkg-config --cflags --libs protobuf`
相关文章推荐
- linux下安装protobuf教程+示例(详细)
- linux下安装protobuf教程+示例(详细)
- linux下安装protobuf教程+示例(详细)
- linux下安装protobuf教程+示例(详细)
- linux下安装protobuf教程+示例(详细)
- linux下安装protobuf教程+示例(详细)
- linux下安装protobuf教程+示例(详细)
- linux下安装protobuf教程+示例
- linux下安装protobuf教程+示例
- linux下安装google protobuf(详细)
- linux下安装google protobuf(详细)
- linux下安装protobuf教程
- linux系统安装MyEclipse 2014的详细教程
- Linux下安装DB2_v9.7详细教程
- 在Linux系统下安装Vmware(虚拟机)图文教程步骤详细介绍
- Linux16.04安装Matlab2016b详细教程
- CentOS6.5安装MySQL5.7详细教程以及Linux mysql5.7最精简安装方法 附带强制修改root密码方法
- Red Hat Enterprise Linux 6 64位详细安装教程
- Linux+Windows环境下Redis安装详细教程(主从复制+哨兵机制配置)
- Linux下安装Nginx详细图解教程