Linux protobuf以及protobuf-c的安装与使用说明

Linux protobuf以及protobuf-c的安装与使用

由于google protobuf并不支持c语言,所以如要通过protobuf将proto文件转换成c文件,除了需要安装protobuf以外,还需安装第3方的protobuf-c。

1.protobuf的安装
(a). 下载protobuf,下面是最新版的路径
https://github.com/protocolbuffers/protobuf/releases/tag/v3.15.8

(b). linux下安装
sudo apt-get install autoconf automake libtool

©. 执行./autogen.sh脚本,生成configure配置文件。

(d). 执行./configure进行配置,注意最好指定一下安装参数
./configure --prefix=/usr/local/protobuf --libdir=/usr/lib
如果出现error: no acceptable C compiler found in $PATH
则需要安装gcc、
Sudo apt-get install gcc
Sudo apt-get install build-essential
Sudo apt-get install g++

(e). make

(f). sudo make install

至此,protobuf就安装完成,接下来需要安装protobuf-c。

2.protobuf的安装
(a). 下载
git clone https://github.com/protobuf-c/protobuf-c.git

(b).export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
// 指定protobuf.pc文件所在

©. ./autogen.sh

(d). 配置信息,注意prefix不要与protobuffer一样,否则会覆盖protobuffer。 ./configure --prefix=/usr/local/protobuf-c --libdir=/usr/lib/
如出现错误:The pkg-config script could not be found or is too old
安装 sudo apt-get install pkg-config

(e). make
出现如下错误:make: *** No targets specified and no makefile found. Stop.
首先查看 gcc 版本 gcc -v,若无安装,则运行 sudo/yum install gcc-c++,确保 gcc 是安装成功的。
若报错仍未解决则update最新版本系统软件,apt-get update。
编译缺失关联软件,apt-get install gcc build-essential

(f). sudo make install
(g). 拷贝头文件
sudo cp -r /usr/local/protobuf-c/include/protobuf-c /usr/include

(h). 软链接protoc-gen-c
sudo ln -s /usr/local/protobuf-c/bin/protoc-gen-c /usr/local/bin/protoc-c
在这里插入图片描述
走到这一步就已经成功安装完成。接下来是protobuf-c的使用方法。
Protoc-c --c_out=./ ./speech.proto

–c_out=是最后生成的.c文件的路径,然后才是原始proto的路径。
如上是需要将当前路径下的speech.proto文件转换成.c/.h,并保存到当前路径下。

如果当前需要转换的proto文件中有include其他文件,可以通过 -I声明需要包含的文件。
protoc-c --c_out=./ -I=./protobuf-c/out/ ./protobuf-c/out/speech.proto
-I=是表示需要包含的proto文件路径。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值