之前在VS中使用过protobuf,windows情况下还是相对熟悉些,配置起来也快些。现在需要对项目进行移植到linux上,所以需要再配置下protobuff,方法如下:
1.下载protobuff,我下的是2.3.0版本
2.解压和安装操作:
protobuf-2.3.0.tar.gz
tar -zxvf protobuf-2.3.0.tar.gz
cd protobuf-2.3.0
sudo ./configure --prefix=/usr
对于2.2版本的好像不需要这个prefix参数也行,但对于2.2以下的版本,如果不设置这个参数,protobuf的include 和 lib 会安装到/usr/local下去,导致protoc找不到依赖的.so库,error while loading shared libraries: libprotobuf.so.2: cannot open shared object file: No such file or directory。需要重新设置环境变量。有了这个参数后就可以一步到位,比较方便。
sudo make
sudo make check
sudo make install
protoc --version 可以看到版本号,说明安装成功。
3.message文件生成.cc 和其头文件.h
比如需要将包含message信息的名为search.proto转化为search.pb.cc 和search.pb.h。
cd /temp/message
protoc --cpp_out=. search.proto
.表示当前目录,cpp_out表示生成cpp文件,可以通过protoc --help查看参数那么就会在当前目录下生成myMessage.pb.cc和myMessage.pb.h两个文件也就是我们需要的,拷贝到相应的工程目录就可以使用myMessage对应的一些函数。
4.设置包含的include文件和lib目录
project->build option->link setting->add
protobuf
一般这样就可以完整地使用protobuf了,一些额外的头文件和库,可以在search directories里面设置。