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

Linux下protobuf和 protobuf-c安装使用

如果在 C语言中使用 protobuf,就需要使用 protobuf-c这个库。

protobuf使用详解:https://blog.csdn.net/qq_42402854/article/details/134066566

下面在 Linux下安装 protobuf和 protobuf-c。

一、下载 protobuf和 protobuf-c

官方的 Protocol Buffer提供了C++、C#、Dart、Go、Java、Kotlin和Python语言的支持。但是不包括C语言。

  1. protoc命令通过 *.proto文件生成支持语言的代码。
  2. protobuf不同语言的库用于代码最终调用时使用

对于 C语言版本的protobuf-c,只针对C语言做了实现。

  1. protoc-c命令通过 *.proto文件生成对应 C语言的代码(.pb-c.h和.pb-c.c文件),以便在C语言中使用。
  2. libprotobuf-c库用于编译时连接使用。

protobuf下载地址:https://github.com/protocolbuffers/protobuf/releases
protobuf-c下载地址:https://github.com/protobuf-c/protobuf-c/releases

本次下载以 3.19.6版本为例,根据自己需求下载即可。将下载后的压缩包解压到合适的位置。

[root@centos7 protobuf]# pwd
/usr/local/protobuf
# 解压
[root@centos7 protobuf]# tar -zxvf  protobuf-all-3.19.6.tar.gz
[root@centos7 protobuf]# tar -zxvf  protobuf-c-1.4.1.tar.gz
[root@centos7 protobuf]# ll
总用量 8076
drwxr-xr-x 18 690013 89939    4096 930 2022 protobuf-3.19.6
-rw-r--r--  1 root   root  7747455 1017 22:35 protobuf-all-3.19.6.tar.gz
drwxr-xr-x  8 lisi   lisi      312 711 2022 protobuf-c-1.4.1
-rw-r--r--  1 root   root   513596 1017 22:35 protobuf-c-1.4.1.tar.gz

二、Linux下安装

1、安装 protobuf

# 1. 编译安装protobuf
[root@centos7 protobuf]# cd /usr/local/protobuf/protobuf-3.19.6
[root@centos7 protobuf-3.19.6]# ./configure --prefix=/usr/local/protobuf/protobuf-3.19.6/
[root@centos7 protobuf-3.19.6]# make
[root@centos7 protobuf-3.19.6]# make install# 2. 添加环境变量
[root@centos7 protobuf-3.19.6]# cd ~
[root@centos7 ~]# vim .bashrc
# 添加这两行
export PATH="$PATH:/usr/local/protobuf/protobuf-3.19.6/bin"
export PKG_CONFIG_PATH=/usr/local/protobuf/protobuf-3.19.6/lib/pkgconfig
# 使之生效
[root@centos7 ~]# source .bashrc# 3. 检查是否安装成功,查看版本信息。
[root@centos7 ~]# protoc --version
libprotoc 3.19.6

编译安装时间有有点长,请耐心等待。

2、安装 protobuf-c

# 1. 编译安装protobuf-c
[root@centos7 ~]# cd /usr/local/protobuf/protobuf-c-1.4.1
[root@centos7 protobuf-c-1.4.1]# ./configure --prefix=/usr/local/protobuf/protobuf-c-1.4.1
[root@centos7 protobuf-c-1.4.1]# make
[root@centos7 protobuf-c-1.4.1]# make install# 2. 添加环境变量
[root@centos7 protobuf-c-1.4.1]# cd ~
[root@centos7 ~]# vim .bashrc
# 添加这一行
export PATH="$PATH:/usr/local/protobuf/protobuf-c-1.4.1/bin"
# 使之生效
[root@centos7 ~]# source .bashrc# 3. 检查是否安装成功,查看版本信息。
[root@centos7 ~]# protoc-c --version
protobuf-c 1.4.1
libprotoc 3.19.6

在这里插入图片描述

三、生成 C语言文件

可以使用 protoc-c命令通过 *.proto文件生成C语言的 .pb-c.h和.pb-c.c文件。

命令:protoc-c --c_cout=. ./*.proto

[root@centos7 ~]# mkdir -p /usr/local/protobuf/gen-proto
[root@centos7 ~]# cd /usr/local/protobuf/gen-proto
[root@centos7 gen-proto]# vi User.proto
[root@centos7 gen-proto]# cat User.proto
syntax = "proto3";message User {int32  sex = 1;string name = 2;}
[root@centos7 gen-proto]# protoc-c --c_out=. ./User.proto
[root@centos7 gen-proto]# ll
总用量 12
-rw-r--r-- 1 root root 2785 1027 23:02 User.pb-c.c
-rw-r--r-- 1 root root 1947 1027 23:02 User.pb-c.h
-rw-r--r-- 1 root root   76 1027 23:01 User.proto

– 求知若饥,虚心若愚。

http://www.lryc.cn/news/208719.html

相关文章:

  • FastAPI 快速学习之 Flask 框架对比
  • Spring Boot和XXL-Job:高效定时任务管理
  • 3、QtCharts 动态曲线图
  • Linux下自动挂载U盘或者USB移动硬盘
  • 一文通透位置编码:从标准位置编码到旋转位置编码RoPE
  • 八皇后问题
  • UE4/UE5 设置widget中text的字体Outline
  • 漏洞复现-phpmyadmin_SQL注入 (CVE-2020-5504)
  • 安装虚拟机(VMware)保姆级教程及配置虚拟网络编辑器和安装WindowsServer以及宿主机访问虚拟机和配置服务器环境
  • vue表格列表导出excel
  • CSS基础入门03
  • 大数据架构设计理论与实践
  • 2024级199管理类联考之英语二2200核心词汇(第三天)
  • SQL中:语法总结(group by,having ,distinct,top,order by,like等等)
  • 13.计算机视觉
  • 关于Java中的运算符
  • 细说RTSP、RTMP和GB28181区别
  • Windows下安装Anaconda、Pycharm以及iflycode插件图解
  • Steger算法实现结构光光条中心提取(python版本)
  • 【完整解题】2023年第四届MathorCup高校数学建模挑战赛——大数据竞赛B题 思路代码文章电商零售商家需求预测及库存优化问题
  • 服务网络基础
  • 2016年亚太杯APMCM数学建模大赛C题影视评价与定制求解全过程文档及程序
  • Elasticsearch:使用 Open AI 和 Langchain 的 RAG - Retrieval Augmented Generation (四)
  • YOLOv7优化:渐近特征金字塔网络(AFPN)| 助力小目标检测
  • J2EE项目部署与发布(Windows版本)
  • 使用AWS Lambda函数的最佳实践!
  • 【计算机毕设小程序案例】基于SpringBoot的小演员招募小程序
  • 老年少女测试媛入职感想
  • StreamSaver.js入门教程:优雅解决前端下载文件的难题
  • element-ui vue2 iframe 嵌入外链新解