前言

编译调试项目的过程中涉及到caffe的编译,提示没有安装protobuf的错误,本文详解protobuf的安装;

问题描述

解决步骤

1.查看google protobuf的github,没有直接使用release而是对源码按照readme文件进行了编译;

protobuf需要一些依赖库,需要先进行安装;

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

出现问题

注意,红框中的内容表示当前系统的sources.list中没有该库的源链接(目录在/etc/apt/sources.list),但并不表示当前系统没有安装该库;

不过,博主的当前系统的确是没有安装该库;

2.安装curl依赖库,参考here,不过最后的步骤改为以下命令则可正确安装;

sudo make install

3. 按照protobuf的readme操作运行以下命令出错;

$ ./autogen.sh

错误如下

说明缺少gmock这个依赖库;

4.安装gmock依赖库,可参考here

5.安装之后按照readme的步骤进行编译即可;

$ ./configure
$ make
$ make check
$ sudo make install
$ sudo ldconfig # refresh shared library cache.

注意,依赖库的版本需要与项目需要的版本一致,故注意依赖库的版本;

博主在解决这个问题的过程中编译完成的是当前protobuf的最新版本3.5.1,后来发现项目使用的是2.6.0或者2.6.1版本的;

 linux系统安装依赖库的方法

如何安装各种依赖库或者工具包;
1)直接使用apt-get install进行安装,这样能够正确安装的前提是系统中有源链接的文件,在/etc/apt/source.list文件中;
2)直接在github或者官网上找到包的源码,自己按照一定的步骤进行编译,需要注意的问题是版本是否一致;
3)一种是直接在相关网站上找到对应系统的包的release版本,使用sudo dpkg -I filename进行安装,

这个需要注意的是安装的包本身可能需要多个依赖项,需要将全部的依赖项都下载下来进行安装,

同时也需要注意包的版本是否匹配,另外,网站上的依赖包可能会有坏的,需要检查一下是否正确安装依赖项,

不能只查看文件,文件存在不一定正确安装,有可能只是一个空的链接,切记切记!!!!!

另外,我们使用的板子是ARM板子,故选择的包是arm64的,同时系统版本的codename是Xenial的,选择包的版本的时候需要注意。
使用lsb_release -a命令行可以查看系统的版本属性等;
一般含有箭头的文件可能就是某个链接,没有正确安装;

参考

1.google protobuf github

2.依赖库curl的安装1

3.curl的安装-百度

4.IT大道-protobuf的安装

5.gmock-protobuf的安装

google-protobuf安装详解的更多相关文章

  1. 前端后台以及游戏中使用Google Protocol Buffer详解

    前端后台以及游戏中使用Google Protocol Buffer详解 0.什么是protoBuf protoBuf是一种灵活高效的独立于语言平台的结构化数据表示方法,与XML相比,protoBuf更 ...

  2. 【转】Linux下Android ADB驱动安装详解

    原文网址:http://blog.csdn.net/zhenwenxian/article/details/5901350 Linux下Android ADB驱动安装详解 概述 最近由于内置的合作商比 ...

  3. Android Studio3.0的下载及其安装详解加eclipse下载安装配置jdk9

    关注我,每天都有优质技术文章推送,工作,学习累了的时候放松一下自己. 本篇文章同步微信公众号  欢迎大家关注我的微信公众号:「醉翁猫咪」 今天我们来讲解如何下载android studio 3.0及其 ...

  4. Linux ssh登录和软件安装详解

    阿哲Style   Linux第一天 ssh登录和软件安装详解 Linux学习第一天 操作环境: Ubuntu 16.04 Win10系统,使用putty_V0.63 本身学习Linux就是想在服务器 ...

  5. scribefire 多博客管理利器 安装详解

    scribefire 多博客管理利器 安装详解 一.ScribeFire介绍 ScribeFire 是 Firefox (火狐浏览器)上著名的博客写作工具,目前已跨平台支持多浏览器(Firefox,C ...

  6. CentOS 6.5的安装详解

    CentOS 6.5的安装详解 主流: 目前的Linux操作系统主要应用于生产环境, 主流企业级Linux系统仍旧是RedHat或者CentOS 免费: RedHat 和CentOS差别不大,Cent ...

  7. Linux下tomcat的安装详解

    Linux下tomcat的安装详解 来源: ChinaUnix博客 日期: 2007.01.21 22:59 (共有0条评论) 我要评论 一,安装前的准备:1,Linux版本:我的是企业版.(至于红帽 ...

  8. Phoenix和SQuirrel安装详解

    Phoenix安装详解 描述 现有hbase的查询工具有很多如:Hive,Tez,Impala,Shark/Spark,Phoenix等.今天的主角是Phoenix. phoenix,中文译为“凤凰” ...

  9. zabbix agent安装详解

    安装 Installing repository configuration package Zabbix 2.2 for RHEL5, Oracle Linux 5, CentOS 5: rpm - ...

  10. zabbix server安装详解

    简介 zabbix(音同 zæbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以 ...

随机推荐

  1. 在每个节点填充向右的指针 Populating Next Right Pointers in Each Node

    2018-08-09 16:01:40 一.Populating Next Right Pointers in Each Node 问题描述: 问题求解: 由于是满二叉树,所以很好填充. public ...

  2. LeetCode--198--打家劫舍

    问题描述: 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警. 给 ...

  3. Android之封装好的异步网络请求框架

    1.简介  Android中网络请求一般使用Apache HTTP Client或者采用HttpURLConnection,但是直接使用这两个类库需要写大量的代码才能完成网络post和get请求,而使 ...

  4. WebForm页面数据绑定总结

    总述 绑定语法 第一种: <%= str%> 例子:'<%= DateTime.Now %>'适用条件:用于非服务器端控件的属性第二种: <%= str%> 从出现 ...

  5. HttpServletResponse输出的中文乱码

    HttpServletResponse输出有两种格式,一种是字符流,一种是字节流. 1.字符流 // 这句话的意思,是让浏览器用utf8来解析返回的数据,即设置客户端解析的编码 response.se ...

  6. winform窗体程序运行后怎样隐藏?

    运行winform窗体,我们是怎样隐藏的呢? 例子: 1)创建简单winform窗体 2)编写隐藏窗体程序的代码 3)效果演示 1)创建一个简单的winform窗体MainForm,

  7. Windows各种各种消息投递函数

    1.SendMessage:发送消息给指定的窗口过程:直到窗口过程处理了消息才返回. 2.PostMessage:将消息放入消息队列(与指定窗口创建的线程相关)中:无需等待消息处理,立即返回.   不 ...

  8. Python - Learn Note (3)

    Python之模块 包就是文件夹:包可以有多级: 模块就是 xxx.py文件:可以创建自己的模块,并且导入它们,模块的名字就和文件的名字相同: Python使用import语句导入一个模块. impo ...

  9. c++理解析构函数

    析构函数有2种方式调用,一个是主动调用delete,另一个是根据RAII的规则,在对象的生命周期结束时自动析构.第一点没什么好说的,就简单讲下第二点. 对象的生命周期不等于是程序的生命周期,一般我们所 ...

  10. 纪念第一次ak。。。

    1.MM的数学作业 [题目大意] 今天,MM在上数学课,数学课的主题是函数.讲完以后老师留了一个家庭作业,让同学们回家思考.题目如下: 定义一个函数,F(x)表示x转成二进制后,二进制中“1”的个数. ...