ubuntu系统Protobuf指定版本安装,以及报错解决方法

1.查看protobuf版本

# protoc --version

2.安装指定版本protobuf

前提: 确保一下几个库都有安装

# sudo apt-get install autoconf automake libtool curl make g++ unzip

在此以安装protobuf3.6版本为例

# git clone -b v3.6.0 https://github.com/protocolbuffers/protobuf.git
//安装哪个版本,v后面直接修改即可
# cd protobuf
# git submodule update --init --recursive
// 该命令表示克隆protobuf的子模块,主要是gtest
//没有反应,没问题继续进行

编译protobuf源码,并进行安装

// 进入到克隆的protobuf目录
# cd protobuf
# ./autogen.sh
# ./configure --help//查看默认安装路径如下图所示,路径显示为/usr/local,则可以采用默认安装
# ./configure
# make
// 如果没有克隆子模块,make check会失败但是可以继续make install,但是使用某些功能时可能会出错
# make check
# sudo make install
# sudo ldconfig
// 输出protobuf版本信息则表示安装成功
# protoc --version

在这里插入图片描述

3.报错无configure和makefile文件等等,比如安装protobuf3.0版本

生成configure和makefile文件

# cd protobuf
# aclocal
# autoconf
# autoheader
# automake --add-missing
# ./configure --help//查看默认安装路径,若路径显示为/usr/local,则可以采用默认安装
# ./configure
# make
# sudo make install

./configure一定要查看路径,因为ros自带protobuf2路径是在/usr/include下,如果不加路径的话,则会默认安装到/usr/include下,那个google文件就是了。这个结果则会导致protobuf2和protobuf3冲突,在编译cartographer文件的时候报错!!!
若路径显示为/usr,则需要改变默认路径

./configure --prefix=/usr/local

继续上述步骤,make ,sudo make install

若有报错出现configure.ac:*: error: required file ‘autoconf/ltmain.sh’ not found
安装libtools

# sudo apt install libtool

执行

# libtoolize --automake --copy --debug --force

若有报错出现config.status: error: cannot find input file: `Makefile.in’

# aclocal
# libtoolize –automake 
# automake --add-missing
# ./configure
# make
# sudo make install

4.检查protobuf版本

# protoc --version

参考链接
参考链接:自动生成configure和makefile
参考链接:Ubuntu18.04同时安装两个版本的protobuf

  • 10
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值