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 這個設置,其他完全一樣。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容