提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
一、版本
1.1 protobuf 2.6.1
https://github.com/protocolbuffers/protobuf/releases/tag/v2.6.1
->libprotobuf.so.8
1.2 protobuf 3.17.3
下载地址:https://github.com/protocolbuffers/protobuf/releases/tag/v3.17.3
->libprotobuf.so.28
1.3 protobuf 3.19.1
下载地址:https://github.com/protocolbuffers/protobuf/releases/tag/v3.19.1
->libprotobuf.so.30
二、安装
tar -xvf protobuf protobuf-3.17.3.tar.gz
cd protobuf-3.17.3
./autogen.sh
./configure “CXXFLAGS=-std=c++11”
make
make check
sudo make install
sudo ldconfig
三、卸载
查看protobuf的版本:protoc --version
查找protobuf的位置:which protoc
删除可执行文件:sudo rm /usr/local/bin/protoc
删除头文件:sudo rm -rf /usr/local/include/google
删除库文件:sudo rm -rf /usr/local/lib/libproto*
四、运行example
官方手册链接,下方为C++用例
cd至protobuf安装目录下
cd example/
mkdir build
protoc -I=./ cpp_out=./build ./addressbook.proto
cd build/
cmake …
make
./add_person_cpp book_file_name即可运行样例
五、其他指令
查找libprotobuf.so:whereis libprotobuf.so
六、问题解决
6.1 libprotobuf.so.28:cannot open shared object file
查看ld.so.conf配置:sudo vi /etc/ld.so.conf,内容应该是 include /etc/ld.so.conf.d/*.conf,即包含ld.so.conf.d文件夹中的所有配置文件
查找libprotobuf.so.28位置:whereis libprotobuf.so.28
cd /etc/ld.so.conf.d
sudo touch proto.conf
sudo vi proto.conf
将libprotobuf.so.28的位置复制到proto.conf中
保存
更新动态链接库: /sbin/ldconfig -v
6.2 Could not find a package configuration file provided by “protobuf” with any of the following names: protobufConfig.cmake protobuf-config.cmake
进入protobuf安装目录/example
修改CMakeLists.txt
find_package(protobuf CONFIG REQUIRED) -> find_package(Protobuf REQUIRED)