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