protobuf-c之linux编译

编译前工作

        需要先安装好protocol buffer库并配置好环境变量,请参考protocol buffer之linux编译
        解压源码,例如:protobuf-c.zip到目录/home/workspace/protobuf-c,通过终端进入,输入命令:

./autogen.sh

        生成configure文件。
        在父目录创建构建目录,例如:/home/workspace/protobuf-c_build,通过终端进入构建目录,输入命令:

./../protobuf-c/configure --prefix=/opt/protobuf-c-linux

编译源码

        配置成功后,输入命令:make,成功后,输入命令:make install,即可把protobuf-c库安装到目录:/opt/protobuf-c-linux

使用示例

        创建工程目录,例如:/home/workspace/test_protobuf_c,把/opt/protobuf-c-linux拷贝到该目录下。
        在工程目录创建proto-in目录用于存放.proto协议文件,创建工具脚本gen_proto.sh,内容如下:

#!/bin/bash

#.proto文件路径
SOURCE_PATH="proto-in"
#.c文件输出路径
OUTPUT_PATH="proto-out"
#protoc-c路径
PROTOC=protobuf-c-linux/bin/protoc-c
#判断输出路径是否存在,不存在则创建
if [ ! -d $OUTPUT_PATH ]; then
    mkdir $OUTPUT_PATH
fi
#遍历.proto文件,并生成C文件
echo "Start Generate C Files ..."
echo
echo ".proto defined Path:" $SOURCE_PATH
echo "C Files Output Path:" $OUTPUT_PATH
echo
for file in $SOURCE_PATH/*; do
    echo "..." ${file##*/} " -> " $(basename $file .proto)".pb-c.h  " $(basename $file .proto)".pb-c.c"
    $PROTOC --proto_path=$SOURCE_PATH --c_out=$OUTPUT_PATH ${file##*/}
    sed -i 's/#include <protobuf-c\/protobuf-c.h>/#include <protobuf-c-linux\/include\/protobuf-c\/protobuf-c.h>/' $OUTPUT_PATH/$(basename $file .proto).pb-c.h
done
echo
echo "Well Done."

        运行命令:./gen_proto.sh将会自动根据proto-in目录下的所有.proto协议定义文件在proto-out目录下生成相应的C源码文件。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值