gRPC系列之Protobuf的安裝和使用

gRPC系列之Protobuf的安裝和使用

Protobuf是Protocol Buffers的簡(jiǎn)稱,它是Google公司開發(fā)的一種數(shù)據(jù)描述語(yǔ)言,并于2008年對(duì)外開源。Protobuf剛開源時(shí)的定位類似于XML、JSON等數(shù)據(jù)描述語(yǔ)言,通過附帶工具生成代碼并實(shí)現(xiàn)將結(jié)構(gòu)化數(shù)據(jù)序列化的功能。但是我們更關(guān)注的是Protobuf作為接口規(guī)范的描述語(yǔ)言,可以作為設(shè)計(jì)安全的跨語(yǔ)言PRC接口的基礎(chǔ)工具。

1.安裝Protocol Buffers

1.1 Ubuntu下,源碼安裝

github上下載自己想要的版本,建議下載all版本 ,我下載的是protobuf-all-3.10.0.zip包

下載好后,解壓,切換到對(duì)應(yīng)根目錄下,編譯安裝:

protobuf默認(rèn)安裝在 /usr/local 目錄
你可以修改安裝目錄通過 ./configure --prefix=命令
雖然我是root用戶但覺得默認(rèn)安裝過于分散,所以統(tǒng)一安裝在/usr/local/protobuf下

$./configure --prefix=/usr/local/protobuf
$ make             //編譯未編譯的依賴包  #要編譯很久
$ make check       //檢查依賴包是否完整
$ make install     //開始安裝Protocol Buffer

添加到系統(tǒng)的環(huán)境變量中:

vim  /etc/profile

打開配置文件,在該文件中添加下面內(nèi)容,配置環(huán)境變量:

####### add protobuf lib path ########
#(動(dòng)態(tài)庫(kù)搜索路徑) 程序加載運(yùn)行期間查找動(dòng)態(tài)鏈接庫(kù)時(shí)指定除了系統(tǒng)默認(rèn)路徑之外的其他路徑
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/protobuf/lib/
#(靜態(tài)庫(kù)搜索路徑) 程序編譯期間查找動(dòng)態(tài)鏈接庫(kù)時(shí)指定查找共享庫(kù)的路徑
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/protobuf/lib/
#執(zhí)行程序搜索路徑
export PATH=$PATH:/usr/local/protobuf/bin/
#c程序頭文件搜索路徑
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/protobuf/include/
#c++程序頭文件搜索路徑
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/protobuf/include/
#pkg-config 路徑
export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/
######################################

然后保存退出,執(zhí)行:

source /etc/profile

檢查 Protocol Buffer 是否安裝成功

// 在終端下輸入
protoc --version

1.2 Windows下安裝

github上下載windows版本的Protocol Buffers,我下載的是 protoc-3.10.0-win64.zip

下載好后直接解壓,就可以運(yùn)行了

但是如果要再任意的地方運(yùn)行,需要將其添加到環(huán)境變量中,如圖所示:

win下的環(huán)境變量配置

打開終端,輸入:

λ protoc --version
libprotoc 3.10.0

成功!?。?/p>

2.簡(jiǎn)單的使用

proto語(yǔ)言編寫參考 go語(yǔ)言高級(jí)編程

切換到要使用的proto文件路徑下,并打開cmd窗口執(zhí)行以下命令:

protoc --java_out=${OUTPUT_DIR} path/to/your/proto/file

例子:

我的.proto文件放在本目錄下,希望java版本的proto文件也輸出到本目錄下,則:

protoc --java_out=./ test_hello.proto

如果是c++版本的話則需要寫成:--cpp_out

其他版本的輸出,可以參考下圖:

各個(gè)版本的輸出命令

輸出之后程序命名一般為:

test_hello_pb2.py或TestHello.java格式,根據(jù)語(yǔ)言而變化
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容