protobuf-c之linux编译

本文详细介绍了如何在Linux环境下编译protobuf-c库,并配置环境变量。通过具体步骤指导读者解压源码、生成configure文件、创建构建目录、配置及安装库。此外,还提供了一个使用示例,包括创建工程目录、生成C源码文件的脚本gen_proto.sh。

编译前工作

        需要先安装好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源码文件。

Linux系统下安装protobuf-c有多种方法,以下为你详细介绍: ### 方法一:使用apt-get命令(适用于Ubuntu系统) 在Ubuntu系统中,可以直接使用以下命令安装protobuf-c: ```bash apt-get install protobuf-c-compiler ``` ### 方法二:从GitHub仓库下载安装 ```bash # 克隆仓库 git clone https://github.com/protobuf-c/protobuf-c.git # 解压文件 tar zxvf protobuf-c.tar.gz # 进入目录 cd protobuf-c # 配置安装路径 ./configure --prefix=/usr # 编译 make # 安装 sudo make install ``` ### 方法三:从指定链接下载安装 ```bash # 下载文件 wget http://protobuf-c.googlecode.com/files/protobuf-c-0.15.tar.gz # 解压文件 tar zxvf protobuf-c-0.15.tar.gz # 进入目录 cd protobuf-c-0.15 # 配置安装路径 ./configure --prefix=/usr/ # 编译 make # 安装 sudo make install ``` ### 方法四:编译安装并添加环境变量 ```bash # 进入指定目录 cd /usr/local/protobuf/protobuf-c-1.4.1 # 配置安装路径 ./configure --prefix=/usr/local/protobuf/protobuf-c-1.4.1 # 编译 make # 安装 make install # 进入用户主目录 cd ~ # 编辑环境变量配置文件 vim .bashrc # 在文件中添加以下内容 export PATH="$PATH:/usr/local/protobuf/protobuf-c-1.4.1/bin" # 使环境变量生效 source .bashrc # 检查是否安装成功,查看版本信息 protoc-c --version ``` ### 软链接设置 完成上述安装后,还可以进行软链接设置: ```bash sudo ln -s /usr/local/protobuf-c/bin/protoc-gen-c /usr/local/bin/protoc-c ``` ### 安装测试 可以通过以下命令测试protobuf-c是否安装成功: ```bash cd .. protoc-c --c_out=./ protobuf-c-0.15/src/test/test.proto ``` 若执行上述命令无报错,可查看生成文件来确认安装成功。 [^1][^2][^3][^4][^5]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值