赞
踩
如果在 C语言中使用 protobuf,就需要使用 protobuf-c这个库。
protobuf使用详解:https://blog.csdn.net/qq_42402854/article/details/134066566
下面在 Linux下安装 protobuf和 protobuf-c。
官方的 Protocol Buffer提供了C++、C#、Dart、Go、Java、Kotlin和Python语言的支持。但是不包括C语言。
对于 C语言版本的protobuf-c,只针对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 9月 30 2022 protobuf-3.19.6
-rw-r--r-- 1 root root 7747455 10月 17 22:35 protobuf-all-3.19.6.tar.gz
drwxr-xr-x 8 lisi lisi 312 7月 11 2022 protobuf-c-1.4.1
-rw-r--r-- 1 root root 513596 10月 17 22:35 protobuf-c-1.4.1.tar.gz
# 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
编译安装时间有有点长,请耐心等待。
# 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
可以使用 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 10月 27 23:02 User.pb-c.c -rw-r--r-- 1 root root 1947 10月 27 23:02 User.pb-c.h -rw-r--r-- 1 root root 76 10月 27 23:01 User.proto
– 求知若饥,虚心若愚。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。