1. ProtoBuf 在 window 下的安装
1.1 下载 ProtoBuf 编译器
下载地址:https://github.com/protocolbuffers/protobuf/releases
可以不⽤下载最新版本,这里我以 v21.11 为例,具体的下载根据⾃⼰电脑情况选择。
下载之后将压缩包解压到本地⽬录下。解压后的⽂件内包含 bin、include⽂件,以及⼀个readme.txt。
1.2 配置环境变量
把解压后⽂件中的bin⽬录配置到系统环境变量的Path中去
1.3 检查是否配置成功
打开cmd,输⼊:
protoc --version
查看版本,有显⽰说明成功
⾛到这⾥,恭喜你 ProtoBuf 安装成功!!!
2. ProtoBuf 在 Linux 下的安装
2.1 下载 ProtoBuf
下载 ProtoBuf 前⼀定要安装依赖库:autoconf automake libtool curl make g++ unzip
如未安装,安装命令如下:
Ubuntu ⽤⼾选择:
sudo apt-get install autoconf automake libtool curl make g++ unzip -y
CentOS ⽤⼾选择:
sudo yum install autoconf automake libtool curl make gcc-c++ unzip
ProtoBuf 下载地址:https://github.com/protocolbuffers/protobuf/releases
可以不⽤下载最新版本,这里我以 v21.11 为例,具体的下载根据⾃⼰电脑情况选择。
• 如果要在 C++ 下使⽤ ProtoBuf,可以选择cpp.zip ;
• 如果要在 JAVA 下使⽤ ProtoBuf,可以选择 java.zip;
• 其他语⾔选择对应的链接即可。
• 希望⽀持全部语⾔,选择 all.zip 。
在这⾥我们希望⽀持全部语⾔,所以选择 protobuf-all-21.11.zip,右键将下载链接复制出来。
下载命令:
wget https://github.com/protocolbuffers/protobuf/releases/download/v21.11/protobuf-all-21.11.zip
下载完成后,解压zip包:
unzip protobuf-all-21.11.zip
解压完成后,会⽣成 protobuf-21.11 ⽂件,进⼊⽂件:
cd protobuf-21.11
内容如下:
2.2 安装 ProtoBuf
进⼊解压好的⽂件,执⾏以下命令:
# 第⼀步执⾏autogen.sh,但如果下载的是具体的某⼀⻔语⾔,不需要执⾏这⼀步。
./autogen.sh
# 第⼆步执⾏configure,有两种执⾏⽅式,任选其⼀即可,如下:
# 1、protobuf默认安装在 /usr/local ⽬录,lib、bin都是分散的
./configure
# 2、修改安装⽬录,统⼀安装在/usr/local/protobuf下
./configure --prefix=/usr/local/protobuf
再依次执⾏
make // 执⾏15分钟左右
make check // 执⾏15分钟左右
sudo make install
执⾏ make check 后 ,出现以下内容就可以执⾏ sudo make install 。
到此,需要你回忆⼀下在执⾏configure时,如果当时选择了第⼀种执⾏⽅式,也就是./configure ,那么到这就可以正常使⽤protobuf了。
如果选择了第⼆种执⾏⽅式,即修改了安装⽬录,那么还需要在/etc/profile 中添加⼀些内容:
sudo vim /etc/profile
# 添加内容如下:
#(动态库搜索路径) 程序加载运⾏期间查找动态链接库时指定除了系统默认路径之外的其他路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/protobuf/lib/
#(静态库搜索路径) 程序编译期间查找动态链接库时指定查找共享库的路径
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/protobuf/lib/
#执⾏程序搜索路径
export PATH=$PATH:/usr/local/protobuf/bin/
#c程序头⽂件搜索路径
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/protobuf/include/
#c++程序头⽂件搜索路径
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/protobuf/include/
#pkg-config 路径
export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/
最后⼀步,重新执⾏ /etc/profile ⽂件:
source /etc/profile
2.3 检查是否安装成功
输⼊ protoc --version 查看版本,有显⽰说明安装成功。
hyb@139-159-150-152:~/install/protobuf-21.11$ protoc --version
libprotoc 3.21.11
⾛到这⾥,恭喜你 ProtoBuf安装成功!!!
3. Linux上遇到的问题
hx@LAPTOP-H2EI4I6A:~/code/protobuf-21.11$ protoc --version protoc: error while loading shared libraries: libprotoc.so.32: cannot open shared object file: No such file or directory
您遇到的问题是在运行protoc命令时,系统无法找到名为libprotoc.so.32的共享库文件。这通常意味着该库文件可能没有安装,或者没有被正确地添加到系统的库路径中。在Ubuntu或其他基于Debian的系统中,您可以尝试以下步骤来解决这个问题:
更新系统的包索引:
sudo apt-get update
安装protobuf-compiler包,这将安装protoc编译器及其所需的库文件:
sudo apt-get install protobuf-compiler
确认安装后,再次运行protoc --version命令检查是否可以正常工作。
hx@LAPTOP-H2EI4I6A:~/code/protobuf-21.11$ protoc --version
libprotoc 3.21.11
如果您的系统中已经安装了protobuf-compiler,那么可能是因为环境变量设置不正确或库文件路径没有被正确配置。您可能需要添加或者修复LD_LIBRARY_PATH环境变量,或者使用ldconfig命令来更新系统库缓存。
请注意,命令行输出中的路径信息(例如~/code/protobuf-21.11)表明您当前位于某个用户的代码目录下,并且尝试从该目录执行protoc --version。这与库文件找不到的问题是两个不同的问题,解决路径问题不影响库文件的加载。
卸载
首先先切换到你解压protobuf的路径下
cd protobuf-21.11
执行如下命令
make clean
完成这步后再进行卸载
sudo apt-get remove libprotobuf-dev #卸载旧版本的protobuf
which protoc #查看自己的库安装的路径
rm /usr/local/bin/protoc #根据你的路径,来卸载旧版本protobuf安装的库
这里的which protoc可以多执行几次,防止你安装多次卸载不干净