1. 程式人生 > >Ubuntu下protobuf的安裝、編譯及注意事項

Ubuntu下protobuf的安裝、編譯及注意事項

Ubuntu下編譯protobuf

1.下載protobuf
下載地址:https://github.com/google/protobuf/releases

2.編譯protobuf
解壓下載的zip包,cd到protobuf的目錄下,執行以下指令:
tar -xvf protobuf
cd protobuf
./configure –prefix=/usr/local/protobuf
make
make check
make install


在protobuf解壓包的根目錄下的README.md檔案中看到c++的編譯方法,根據提示進入到protobuf根目錄下的src目錄,該目錄下的README.md就是c++的編譯方法,上述的編譯步驟可從該檔案中找到。


3.檢查安裝是否成功
protoc –version
如果成功,則會輸出版本號資訊,例如:libprotoc 3.5.1
如果有問題,則會輸出錯誤內容。

4.錯誤及解決方法
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 –version 就可以正常看到版本號了


如果protoc不能使用,則:

(1) vim /etc/profile,新增
  export PATH=$PATH:/usr/local/protobuf/bin/
  export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/
  儲存執行,source /etc/profile。同時在~/.profile中新增上面兩行程式碼,否則會出現登入使用者找不到protoc命令。
(2) 配置動態連結庫
  vim /etc/ld.so.conf,在檔案中新增/usr/local/protobuf/lib(注意: 在新行處新增),然後執行命令: ldconfig


protoc編譯器應用:

protoc addressbook.proto –cpp_out=./

生成可執行檔案:
g++ addPerson.cpp addressbook.pb.cc -o addPerson -lpthread -l protobuf

注:

如果不加 “-lpthread -l protobuf”引數可能會導致編譯報錯。


參考:

https://blog.csdn.net/xocoder/article/details/9155901
https://www.cnblogs.com/youxin/p/4073703.html
https://blog.csdn.net/u012023606/article/details/54584282
https://blog.csdn.net/u012023606/article/details/54583526