protobuf使用遇到的坑


在這里具體的使用我不寫了,可以參考下面接個連接,我只記錄自己遇到的問題。

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/ 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM