1、前言
protobuf是Google提供的结构持久化工具,类型XML,但要比XML更加灵活,效率要高。protobuf当初支持C++、JAVA和Python,后来有了支持C语言的Protobuf-c。关于prorobuf可以参考:https://code.google.com/p/protobuf/和https://code.google.com/p/protobuf-c/。
2、安装protobuf-c问题
今天从google官方网站上面下载了protobuf-c,解压进行安装,在执行./configure时候出现错误:
错误提示:protobuf headers are required.
解决办法:安装完整的protobuf,安装在默认的路径。下载完整的protobuf安装,下载地址:https://code.google.com/p/protobuf/downloads/list。网上所示的解决办法如下所示:
https://code.google.com/p/protobuf-c/issues/detail?id=88
https://code.google.com/p/protobuf-c/issues/detail?id=44
安装完protobuf后,再在protobuf-c目录下执行./configure执行成功,但是make时候出现错误:
protoc: error while loading shared libraries: libprotoc.so.8: cannot open shared
错误原因:
protobuf的默认安装路径是/usr/local/lib,而/usr/local/lib 不在Linux体系默认的 LD_LIBRARY_PATH 里,所以就找不到该lib
解决方法:
创建文件 /etc/ld.so.conf.d/libprotobuf.conf 包含内容:
保持退出,然后执行. 输入命令 sudo ldconfig。ldconfig命令参考:http://hi.baidu.com/linuxlife/item/94a6c096a1e4184af0421569
参考:http://blog.csdn.net/xocoder/article/details/9155901
make成功,make install 成功。
测试程序:写一个proto,文件命名为:dmessage.proto ,内容如下:
用protoc-c编译生成.h和.c文件如下:protoc-c --c_out=. dmessage.proto