当前位置: 首页 > article >正文

在 Ubuntu 中安装 C++ 版本的 Protocol Buffers

在 Ubuntu 中安装 C++ 版本的 Protocol Buffers(Protobuf)有两种主要方法:

  1. 通过 Ubuntu 的包管理器 apt 安装(适用于快速安装,版本可能较旧)
  2. 从源代码编译安装(适用于需要最新版本或自定义配置的情况)

以下是详细的步骤说明:


方法一:使用 apt 包管理器安装

这种方法简单快捷,适合大多数用户。如果不需要最新版本的 Protobuf,可以选择此方法。

步骤:

  1. 更新包列表

    sudo apt update
    
  2. 安装 Protobuf 编译器和开发库

    sudo apt install -y protobuf-compiler libprotobuf-dev
    
  3. 验证安装

    检查 protoc 版本以确认安装成功:

    protoc --version
    

    你应该看到类似如下的输出:

    libprotoc 3.x.x
    

注意事项:

  • Ubuntu 官方仓库中的 Protobuf 版本可能不是最新的。如果需要更新版本,请考虑从源代码编译安装。

方法二:从源代码编译安装(获取最新版本)

如果你需要 Protobuf 的最新功能或特性,建议从源代码编译安装。

步骤:

  1. 安装必要的依赖

    首先,确保系统中安装了编译所需的工具和库:

    sudo apt update
    sudo apt install -y autoconf automake libtool curl make g++ unzip
    
  2. 下载 Protobuf 源代码

    访问 Protobuf 的 GitHub 仓库 获取最新的发布版本,或使用以下命令下载特定版本(例如 21.0):

    wget https://github.com/protocolbuffers/protobuf/releases/download/v21.0/protobuf-all-21.0.tar.gz
    

    解压下载的文件:

    tar -xzvf protobuf-all-21.0.tar.gz
    cd protobuf-21.0
    
  3. 编译和安装 Protobuf

    执行以下命令进行编译和安装:

    ./configure
    make
    make check
    sudo make install
    sudo ldconfig  # 更新共享库缓存
    

    说明:

    • ./configure:配置编译选项。
    • make:编译源代码。
    • make check:运行测试确保编译正确。
    • sudo make install:安装编译好的库和工具。
    • sudo ldconfig:更新系统的共享库缓存,确保新安装的库被识别。
  4. 验证安装

    检查 protoc 版本:

    protoc --version
    

    输出应显示你安装的版本,例如:

    libprotoc 21.0
    
  5. 设置环境变量(如果需要)

    如果 protoc 命令未在 PATH 中,可能需要手动添加。例如,如果安装路径为 /usr/local/bin,确保该路径在 PATH 中:

    echo 'export PATH=/usr/local/bin:$PATH' >> ~/.bashrc
    source ~/.bashrc
    

注意事项:

  • 卸载旧版本(如果存在):如果之前通过 apt 安装过 Protobuf,建议先卸载以避免版本冲突:

    sudo apt remove -y protobuf-compiler libprotobuf-dev
    
  • 安装特定版本:确保下载与你项目需求匹配的 Protobuf 版本。


使用 Protobuf 的 C++ 库

安装 Protobuf 后,你可以在 C++ 项目中使用它。以下是一个简单的使用示例:

  1. 编写 .proto 文件

    例如,创建 example.proto

    syntax = "proto3";
    
    message Person {
      string name = 1;
      int32 id = 2;
      string email = 3;
    }
    
  2. 生成 C++ 代码

    使用 protoc 编译器生成相应的 C++ 文件:

    protoc --cpp_out=. example.proto
    

    这将生成 example.pb.hexample.pb.cc

  3. 在 C++ 项目中使用

    在你的 C++ 代码中包含生成的头文件,并链接 Protobuf 库。例如,main.cpp

    #include <iostream>
    #include "example.pb.h"
    
    int main() {
      Person person;
      person.set_name("Alice");
      person.set_id(123);
      person.set_email("alice@example.com");
    
      std::cout << "Name: " << person.name() << std::endl;
      std::cout << "ID: " << person.id() << std::endl;
      std::cout << "Email: " << person.email() << std::endl;
    
      return 0;
    }
    
  4. 编译项目

    使用 g++ 编译并链接 Protobuf 库:

    g++ main.cpp example.pb.cc -lprotobuf -o main
    
  5. 运行程序

    ./main
    

    输出应为:

    Name: Alice
    ID: 123
    Email: alice@example.com
    


http://www.kler.cn/a/499873.html

相关文章:

  • C语言gdb调试
  • 人机交互 | 期末复习(上)| 补档
  • 【数据库篇一: MySQL的安装与配置_Windows】
  • 【Node.js】Common JS 和 ES Module 对于导出值的探究
  • linux删除用户
  • Linux 智能化系统
  • Redis 三大问题:缓存穿透、缓存击穿、缓存雪崩
  • Vue.js:现代前端开发的灵活框架
  • 【python小工具】怎么获取视频的关键帧频率?
  • .NETCore WebApi阻止接口重复调用(并发操作)
  • JVM实战—13.OOM的生产案例
  • Apache Hop从入门到精通 第一课 揭开Apache Hop神秘面纱
  • C# 语法中级
  • 后端技术选型 sa-token校验学习 下 结合项目学习 后端鉴权
  • 计算机网络 (36)TCP可靠传输的实现
  • python项目结构,PyCharm 调试Debug模式配置
  • winform第三方界面开源库AntdUI的使用教程保姆级环境设置篇
  • 信息系统项目管理-采购管理-采购清单示例
  • 2024.10.12 校招 实习 内推 面经
  • 【问题记录】解决小米手机无线投屏出现白屏什么都无法显示的问题
  • 【ROS2】☆ launch之Python
  • 重生之我在21世纪学C++—string