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/ 

 

posted @ 2018-11-16 11:26  edan  阅读(4511)  评论(0编辑  收藏  举报