ProtoBuf学习日记

1、下载编译

git   clone  ......

sudo apt-get install autoconf automake libtool

./autogen.sh

./configure

make

make check

make install

protoc: error while loading shared libraries: libprotoc.so.8: cannot open shared

错误原因:

protobuf的默认安装路径是/usr/local/lib,而/usr/local/lib 不在Ubuntu体系默认的 LD_LIBRARY_PATH 里,所以就找不到该lib

解决方法:

1. 创建文件 /etc/ld.so.conf.d/libprotobuf.conf 包含内容:

/usr/local/lib

2. 输入命令

sudo ldconfig

然后protoc命令即可正常使用。

2、配置apache-maven

1)去官网下载即可,加入环境变量。

2)cd   protobuf-3.5.0/java/core       //可以编译 Java 平台下的jar

mvn test

mvn  package

同理  protobuf-3.5.0/javanano      // Android平台使用

3、protoc使用

protoc --proto_path=src/main/java/ --java_out=src/main/java/ src/main/java/proto/suhen/p2/B.proto

--proto_path=假设所有proto文件在A目录下,那么这个值就是A目录的上一级

如果编译一个独立的.proto文件,次参数可以忽略,但是一个文件依赖另一个的话此参数必须配置,另外文件中明确package定义

.proto文件的写法可去Google查看

其他参数好理解。

javanano 文件生成

$ protoc --javanano_out=ignore_services=true:./javanano/ -I proto ./proto/garlic.proto

由于 javanano 是给 android 用的,没有服务器端代码,所以多了--javanano_out=ignore_services=true:DST_DIR 这个设置,其他完全一样。

你可能感兴趣的:(ProtoBuf学习日记)