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

猜你喜欢

转载自blog.csdn.net/old__captain/article/details/80472388