Ubuntu18.04同时安装两个版本的protobuf(protoc)


原文链接: Ubuntu18.04同时安装两个版本的protobuf(protoc)

1.1 清理系统中protobuf

sudo apt-get remove libprotobuf-dev
sudo apt-get remove protobuf-compiler
sudo apt-get remove python-protobuf
sudo rm -rf /usr/local/bin/protoc
sudo rm -rf /usr/bin/protoc
sudo rm -rf /usr/local/include/google
sudo rm -rf /usr/local/include/protobuf*
sudo rm -rf /usr/include/google
sudo rm -rf /usr/include/protobuf*

# 以下两行慎用!
sudo rm -rf /usr/local/lib/libproto*
sudo rm -rf /usr/lib/libproto*
## 重装protobuf
sudo apt-get update
sudo ldconfig
sudo apt-get install libprotobuf* protobuf-compiler python-protobuf

protobuf 多个版本切换 源码编译

git checkout v2.5.0

配置编译后的输出路径(比如为$PROTOC_2_5)

./configure --prefix=/usr/local/protobuf-3.5.1

make && make install
1
制作软连接

ln -s $PROTOC_3_0_2/bin/protoc /usr/local/bin/protoc3.0.2

sudo ln -s /usr/local/protobuf-3.5.1/ /usr/local/protobuf

在/etc/profile中添加下面内容

####### add protobuf lib path ########
#(动态库搜索路径) 程序加载运行期间查找动态链接库时指定除了系统默认路径之外的其他路径
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

caffe 安装protobuf 常见的几个问题

  1. 版本过低
  2. 版本过高 protobuf 3.10 不兼容
  3. python中安装 protobuf 和系统中的protobuf冲突

    pip list
    pip uninstall protobuf 执行卸载
    pip install protobuf==3.9

————————————————
版权声明:本文为CSDN博主「不懂音乐的欣赏者」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_16775293/article/details/81119375

https://github.com/protocolbuffers/protobuf/releases/download/v3.5.1/protobuf-all-3.5.1.tar.gz

1. 下载并安装protobuf2.5.0

$ tar -zxvf protobuf-2.5.0.tar.gz
$ sudo cp -rf protobuf-2.5.0 /usr/local
$ cd /usr/local 
$ sudo chmod -R 0777 protobuf-2.5.0  # 更改文件夹权限
  • 安装protobuf-2.5.0,安装过程参考博客:ubuntu下protobuf安装
  • 这时在/usr/local/bin目录下会出现protoc,输入protoc --version会出现protoc的版本。
  • 为了与后面的protoc3.6区别,建立软链接:

$ sudo ln /usr/local/bin/protoc /usr/local/bin/protoc2.5
$ sudo rm -rf pprotoc   # 删除protoc的软链接
$ protoc2.5  --version  # 通过新创建的软链接查看protoc版本

在这里插入图片描述

2. 下载并安装protobuf3.6.0

$ tar -zxvf protobuf-all-3.6.0.tar.gz
$ sudo cp -rf protobuf-3.6.0 /usr/local
$ cd /usr/local 
$ sudo chmod -R 0777 protobuf-3.6.0  # 更改文件夹权限
  • 安装protobuf-3.6.0

$ cd  protobuf-3.6.0
$ ./autogen.sh
$ ./configure  --prefix=/usr/protobuf  # 为了与protobuf-2.5.0分开来,设定配置目录
$ make
$ make check
$ sudo make install
  • 创建软链接:

$ sudo ln -s /usr/protobuf/bin/protoc /usr/local/bin/protoc3.6
  • 查看版本并验证安装是否成功:

$ protoc3.6 --version
  • 1

在这里插入图片描述

`