第一次接触Protobuf,遇到了系统版本与编译文件版本不统一的情况,以优先解决问题的考虑出发,考虑先把版本统一,验证代码是否可行,之后再来研究版本更新的问题。

在Linux上安装指定版本的Protobuf(比如版本3.19.6)可以通过下载源代码并从源代码编译来完成。

  1. 安装依赖: 在编译Protobuf之前,确保安装了所有必要的依赖。对于大多数Linux发行版,需要安装autoconfautomakelibtoolcurlmakeg++unzip。使用以下命令安装这些依赖(以Ubuntu为例):

    sudo apt update
    sudo apt install autoconf automake libtool curl make g++ unzip
    
  2. 下载Protobuf源代码: 从Protobuf GitHub releases页面下载需要的版本的源码。例如,要下载3.19.6版本,可以使用以下命令:

    curl -OL https://github.com/protocolbuffers/protobuf/releases/download/v3.19.6/protobuf-all-3.19.6.tar.gz
    
  3. 解压源代码: 使用以下命令解压下载的文件:

    tar -zxvf protobuf-all-3.19.6.tar.gz
    

    然后进入解压后的目录:

    cd protobuf-3.19.6
    
  4. 编译和安装: 在源代码目录中,运行以下命令来配置、编译和安装Protobuf:

    ./configure
    make
    make check
    sudo make install
    sudo ldconfig  # 刷新共享库缓存
    
    • ./configure:配置安装选项。
    • make:编译库和编译器。
    • make check:运行单元测试,确保一切正常(这一步是可选的,但建议执行)。
    • sudo make install:将库和二进制文件安装到默认系统位置。
    • sudo ldconfig:更新系统的库缓存,确保新安装的库可以被系统找到。
  5. 验证安装: 安装完成后,可以通过运行以下命令来验证protoc的版本:

    protoc --version
    

    输出应该显示libprotoc 3.19.6,这表明已经成功安装了指定版本的Protobuf。

通过这些步骤,可以在Linux系统上安装任何指定版本的Protobuf。

如果需要安装到一个非标准的位置(例如,避免与系统库冲突),可以在./configure步骤中添加--prefix=/your/custom/path参数来指定安装路径。