当前位置: 首页 > news >正文

化妆品网站优势鄱阳有做百度网站的

化妆品网站优势,鄱阳有做百度网站的,苍南最新发布请配合,购买网站app制作protobuf自定义数据格式,CMake编译文件读写自定义数据 1.protobuf安装2.定义.proto文件3.编写main.cpp4.编写CMAkeLists配置文件5.运行 1.protobuf安装 protobuf库链接 2.定义.proto文件 新建一个Person.proto文件和一个Animal.proto文件,内容如下&…

protobuf自定义数据格式,CMake编译文件读写自定义数据

  • 1.protobuf安装
  • 2.定义.proto文件
  • 3.编写main.cpp
  • 4.编写CMAkeLists配置文件
  • 5.运行

1.protobuf安装

  protobuf库链接

2.定义.proto文件

新建一个Person.proto文件和一个Animal.proto文件,内容如下:

syntax = "proto3";package UserInfo;message Person {string name = 1;int32 id = 2;string email = 3;
}
syntax = "proto3";package UserInfo;message Animal {string name = 1;int32 id = 2;int32 age = 3;
}

在这里插入图片描述

3.编写main.cpp

main函数中对proto中的对象进行序列化和反序列化,内容如下:

#include "Animal.pb.h"
#include "Person.pb.h"
#include <fstream>
#include <iostream>int main() {{// 创建 Person 对象UserInfo::Person person;person.set_name("John Doe");person.set_id(123);person.set_email("john.doe@example.com");// 将数据序列化到文件std::ofstream output("person_data", std::ios::binary);person.SerializeToOstream(&output);output.close();// 从文件中读取数据并反序列化UserInfo::Person read_person;std::ifstream input("person_data", std::ios::binary);read_person.ParseFromIstream(&input);input.close();// 打印反序列化后的数据std::cout << "Name: " << read_person.name() << std::endl;std::cout << "ID: " << read_person.id() << std::endl;std::cout << "Email: " << read_person.email() << std::endl;}{ // 创建 Animal 对象UserInfo::Animal animal;animal.set_name("Dog");animal.set_id(456);animal.set_age(5);// 将数据序列化到文件std::ofstream output("animal_data", std::ios::binary);animal.SerializeToOstream(&output);output.close();// 从文件中读取数据并反序列化UserInfo::Animal read_animal;std::ifstream input("animal_data", std::ios::binary);read_animal.ParseFromIstream(&input);input.close();// 打印反序列化后的数据std::cout << "Name: " << read_animal.name() << std::endl;std::cout << "ID: " << read_animal.id() << std::endl;std::cout << "age: " << read_animal.age() << std::endl;}return 0;
}

在这里插入图片描述
 &ems;注意这时候我们的main.cpp文件是报错的,因为找不到Animal.h文件和Person.h文件,没关系,接下来编辑CMAkeLists.txt配置文件,生成相应的头文件即可!

4.编写CMAkeLists配置文件

cmake_minimum_required(VERSION 3.5)
project(YourProjectName)set(CMAKE_CXX_STANDARD 11)# 查找protobuf库
find_package(Protobuf REQUIRED)# 获取所有的protobuf文件
file(GLOB PROTO_FILES "proto/*.proto")# 生成protobuf文件的C++代码
protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS ${PROTO_FILES})# 添加生成的protobuf文件到项目中
include_directories(${CMAKE_CURRENT_BINARY_DIR})
include_directories(${PROTOBUF_INCLUDE_DIRS})# 添加可执行文件
add_executable(main main.cpp ${PROTO_SRCS} ${PROTO_HDRS})# 链接protobuf库
target_link_libraries(main ${PROTOBUF_LIBRARIES})

在这里插入图片描述

5.运行

mkdir build
cd build
cmake ..
make 
./main

结果如下:

在这里插入图片描述

http://www.yayakq.cn/news/530042/

相关文章:

  • 做定制网站怎么样装修公司企业网站开发规划
  • 网站建设与管理期末考试贵州水电建设局网站
  • 网站婚礼服务态网站建设论文手机免费制作网站模板免费下载
  • 证券公司网站建设方案seo营销网站
  • 快速wordpress 建网站做免费导航网站
  • 公司做网站济南如何避免网站被耍流量
  • 网站设计设计目的微网站建设服务商
  • 服务器和网站的关系wordpress如何播放m3u8的视频
  • 北京网站建设过程渭南经开区
  • 德州住房和城乡建设局网站江苏省张家港保税区建设厅网站
  • 网站开发大体流程图全面的苏州网站建设
  • 免费网站服务器定制礼品的网站有哪些
  • 销量不高的网站怎么做自己建一个网站需要什么
  • wordpress可爱主题优化大师官方
  • 东莞网站平台费用wordpress登录后搜索
  • 搜维斯网站建设做华为网站的还有哪些功能吗
  • 甘肃兰州网站建设wordpress 学院 模板
  • 做唯品客网站的感想唐山哪里建设飞机场
  • wordpress如何修改背景图片湘潭专业sem优化
  • 怎么做网站的营销wix怎样做网站
  • 高级网站开发技术使用什么语言全球新冠最新数据报告
  • 网站开发哪种语言更安全网上购物软件
  • 比较好的建站系统wordpress 配置邮箱
  • 如何利用影视网站做cpa模板和网站的区别
  • 青岛外贸网站建设费用wordpress免费搭建博客
  • 建设银行普卡申请网站青岛城运控股集团
  • 免费做网站收录的教务管理系统哪个好
  • 做网站架构需要什么工具旅游景区网站建设的必要性
  • 在iis里面创建网站steam账号注册网站
  • 网站开发的基础知识站长统计app官方网站