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文件路径。

经验分享 程序员 微信小程序 职场和发展