在這里具體的使用我不寫了,可以參考下面接個連接,我只記錄自己遇到的問題。
https://www.cnblogs.com/autyinjing/p/6495103.html(此博客很詳細,不過最好不要下載博客中給的源碼,最好下載2版本,介紹看下面)
源碼下載連接:https://sourceforge.net/projects/protobuf/ 可以下載2.6的版本,已經試過,沒問題。
接下來避雷區
1.不要用3版本,因為在與c++代碼一塊編譯時出現的錯誤比代碼還多,具體原因我還不知道,后來還了2版本就沒問題啦,編譯步驟可以參考上面的博客。
2.編譯完成后命令、頭文件等分別在/usr/local/bin 、/usr/local/include 、/usr/local/lib 中
3.這時在和c++文件編譯鏈接的時候沒有報錯了,但是在執行的時候出現找不到動態庫的錯誤,如下圖:
解決辦法:執行命令export LD_LIBRARY_PATH=/usr/local/lib到此就可以正常執行了,不過export只是臨時測試,新的終端或者其同重啟都會失效,要想長期有效,可以修改如下變量
打開~/.bashrc 或者/etc/bashrc文件,在最后加入export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib即可
4.文件編譯命令
4.1 .proto文件的編譯
protoc -I=/home/edan/test/protobuf/ --cpp_out=/home/edan/soft/protobuf-2.6.0 /home/edan/test/protobuf/addressbook.proto
-I=“.proto文件存放的路徑”
-cpp_out= “輸出的cpp文件存放的路徑”
“.proto的源碼路徑”
更新:
因項目需要,必須用3版本的protobuf,於是又卸載重新安裝,安裝的3.6.1的版本是可以用的,只是protobuf安裝后需要將path路徑,庫所在路徑,在/etc/profile中進行添加,並重啟系統,然后安裝protobuf-c,否則會報錯,如果出現沒有找到protobuf的頭文件,那是配置的問題,在/etc/profile中添加"export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/ "
protobuf-c安裝完畢后同protobuf加入路徑,並重啟系統
///////etc/profile需要添加的代碼
1 ////protobuf的配置路徑 2 export LD_LIBRARY_PATH=/usr/lib 3 4 export PATH=$PATH:/usr/local/protobuf/bin/ 5 export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/protobuf/include/ 6 export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/protobuf/include 7 8 export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/ 9 10 //protobuf-c的配置路徑 11 export PATH=$PATH:/usr/local/protobuf-c/bin/ 12 export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/protobuf-c/include/