前言

编译调试项目的过程中涉及到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. 【转】VC6在Win7下打开文件崩溃问题

    http://www.cnblogs.com/Leon5/archive/2011/08/24/2152670.html 1.微软针对这个问题发布了一个补丁包.下载地址 2.下载之后是一个源码包,解压 ...

  2. Codeforces 861D - Polycarp's phone book

    861D - Polycarp's phone book 思路:用map做的话,只能出现一次循环,否则会超时. 代码: #include<bits/stdc++.h> using name ...

  3. Oracle 起诉 Google 事件

    最近,Google 和 Oracle 纠缠多年的“Java 侵权案”又有了新的判决结果.Google 在此次对决中败诉,并可能需要支付高达88亿美元的赔偿金.这个案件还引发关于 API(应用程序编程接 ...

  4. [Java学习] Java多态和动态绑定

    在Java中,父类的变量可以引用父类的实例,也可以引用子类的实例. 请读者先看一段代码: 1. public class Demo { 2. public static void main(Strin ...

  5. git log 查找

    查找含有某个字符串的 commit git log --grep=224 // 这条命令是查看含有 "224" 关键字的 git commit 查看某个作者 git log --a ...

  6. Leetcode 115

    Ø r a b b b i t Ø r a b b i t class Solution { public: int numDistinct(string s, string t) { ; ; int ...

  7. 写入CSS的3种方式

    CSS能让网页制作者有效的定制.改善网页的效果. CSS是对HTML的补充(网页设计师曾经为无法很好的控制页面的显示效果而倍感苦恼,CSS的出现解决了这个问题) CSS实现了网页内容和页面效果的彻底分 ...

  8. iOS UI-九宫格

    第一节课: .复习 .运行App应用管理,简单界面分析 .一个应用为一个整体,直接创建一个appView然后计算frame .说明弊端,应该根据数据的个数来for循环创建 第二节课: .加载plist ...

  9. SSH执行远程命令和传送数据

    $ ssh user@host 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub ...

  10. PHP 的 HTTP 认证机制

    PHP 的 HTTP 认证机制仅在 PHP 以 Apache 模块方式运行时才有效,因此该功能不适用于 CGI 版本.在 Apache 模块的 PHP 脚本中,可以用 header()函数来向客户端浏 ...