protobuf-c 版本安装和测试
1. 准备与安装
软件包:protobuf-2.6.1.zip, protobuf-c-master.zip
apt-get install pkg-config unzip protobuf-2.6.1.zip ./configure --prefix=/usr/ make make install unzip protobuf-c-master.zip ./configure --prefix=/usr/ make make install
2. 安装验证
cd protobuf-c-master/t
protoc-c --c_out=./ test.proto //无报错则说明安装成功
3. 测试demo
3.1 编写proto文件
vim UserInfo.proto
enum UserStatus {
UNKNOWN = 0;
IDLE = 1;
BUSY = 2;
}
message UserInfo {
required string name = 1;
required uint32 age = 2;
optional string phone = 3;
required UserStatus stat = 4;
optional string email = 5;
}
3.2 使用命令protoc-c 将proto文件进行导出.c和.h文件
protoc-c --c_out=./ UserInfo.proto
3.3 编写main.c
#include "UserInfo.pb-c.h"
#include <stdio.h>
int main()
{
uint8_t buffer[1024] = {0};
UserInfo user;
user_info__init(&user);
user.name = "dabai";
user.age = 18;
user.stat = USER_STATUS__IDLE;
size_t length = user_info__pack(&user, buffer);
UserInfo *userInfo = user_info__unpack(NULL, length, buffer);
if(!userInfo){
printf("user_information__unpack is fail!!!\n");
return -1;
}
printf("Unpack: %s %d %d\n", userInfo->name, userInfo->age, userInfo->stat);
user_info__free_unpacked(userInfo, NULL);
return 0;
}
3.4 编译与运行
gcc main.c UserInfo.pb-c.c -I ./ -lprotobuf-c -o main ./main Unpack: dabai 18 1

浙公网安备 33010602011771号