zoukankan      html  css  js  c++  java
  • (原)Ubuntu16中卸载并重新安装google的Protocol Buffers

    转载请注明出处:

    http://www.cnblogs.com/darkknightzh/p/5782992.html

    ===========================================================================

    170316更新:

    目前最新稳定版本应该是3.2:

    https://github.com/google/protobuf/releases

    可以查看。也可以使用该网址中的进行下载。可以直接安装。

    170316更新结束

    170122更新:

    1. 目前最新版本为3.0(有找.1和3.2,不知道是否不是稳定版的)。3.0的依旧可以用下面的方式安装。

    2. protobuf3.0的下载地址:https://github.com/google/protobuf/releases/tag/v3.0.0

    3. protobuf的下载地址:https://github.com/google/protobuf/releases。这两个都不需要翻墙了。

    4. http://www.cnblogs.com/darkknightzh/p/5804395.html为使用protobuf的简单的例子。如果编译该cpp文件的时候,提示好多未定义的引用:

    addressbook.pb.cc:(.text+0x133):对‘google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(google::protobuf::Descriptor const*, google::protobuf::Message const*, int const*, int, int, int, int, int, int)’未定义的引用
    addressbook.pb.cc:(.text+0x193):对‘google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(google::protobuf::Descriptor const*, google::protobuf::Message const*, int const*, int, int, int, int, int, int)’未定义的引用

    可能是因为电脑安装了两个不同版本的protobuf(ubuntu16默认已经安装了protobuf.so.9这系列的,新装的是protobuf.so.10系列的)。默认的路径见160819更新

    170122更新结束

    ===========================================================================

    目前最新的是1.6.1

    1. 卸载掉老版本的Protocol:

    sudo apt-get remove libprotobuf-dev

    2. 下载最新的Protocol Buffers。下载网址:https://developers.google.com/protocol-buffers/docs/downloads。需跨越长城。最新版的是2.6.1.

    说明:最好不要在github上面下载(可以直接使用170316中的地址进行下载)。此处顺便贴出github的网址:https://github.com/google/protobuf/。原因是,github上面下载的没有configure文件。此时需要先在该文件夹内运行./autogen.sh命令。该命令会从无法访问的网站下载文件。导致连接超时(如果电脑能fq,就没事。否则就没法下载成功。我这边是使用的电脑是win7,能fq,但是安装的是服务器,是ubuntu,没办法fq,因而会出现死结)。。。

    所以直接在可以fq的电脑上下载protobuf-2.6.1.tar.gz压缩包。

    3. 下载完之后,按照https://github.com/google/protobuf/blob/master/src/README.md说明的步骤安装:

    4. 先安装依赖(因以前安装过,所以不需要再次安装):

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

    5. 在终端中依次运行如下命令(只针对C++的安装,其他的。。。我没用过):

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

    160819更新:官网写了,默认会安装到/usr/local路径下,但是/usr/local/lib不一定是系统路径LD_LIBRARY_PATH的一部分,因而或者将/usr/local/lib增加到系统路径LD_LIBRARY_PATH,或者指定安装路径。最好的就是指定安装到/usr路径(此时由于拷贝lib文件夹,实际上安装到/usr/lib路径),如下命令:

    ./configure --prefix=/usr

    还有,如果以前有安装过的话,现在想安装到其他路径,使用make clean清理一下原来的版本。

    6. 安装完之后,使用protoc --version查看版本,便是最新的2.6.1

    ==================================================================================================

    160819更新:

    今天用protoc --version,发现又变回了2.5.0,我。。。使用dpkg -L libprotobuf-dev,查找路径,发现在/usr/lib/x86_64-linux-gnu里面还是有libprotobuf.so.8的一系列文件。卸载掉老版本的protocol后,使用sudo rm -rf强制删除了这些文件(不清楚是否会有什么影响吧。。。),然后再次重新安装2.6.0的版本。。。不知道以后还会出现什么问题。

    160819更新jieshu

    ==================================================================================================

  • 相关阅读:
    TiDB数据库05TiDB的用户管理与安全,文件与日志管理
    Java基础知识16Arrays、System常用方法使用
    TiDB数据库07TiDB集群管理(TiDB/TiKV/PD/TiFlash在线扩容与在线缩容)
    【转】在SQL Server中创建用户角色及授权(使用SQL语句)
    Javascript的IE和Firefox兼容问题
    JavaScript的私有变量
    JavaScript 中的内存泄露模式
    javascript内存泄漏问题
    全面理解javascript的caller,callee,call,apply概念(修改版)
    javascript跨域问题
  • 原文地址:https://www.cnblogs.com/darkknightzh/p/5782992.html
Copyright © 2011-2022 走看看