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

焊枪公司网站怎么做宁波网络设计公司

焊枪公司网站怎么做,宁波网络设计公司,wordpress设置文章排序,手工品外贸出口网站建设方案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/835578/

相关文章:

  • 贵州省建设厅官网站首页wordpress disqus
  • dede网站百度统计怎么做wordpress标题太长
  • 做网站至少要花多少钱wordpress后台显示英文
  • 网站建设书籍云南公司做网站的价格
  • 设计公司官方网站在哪里可以找到做网站的公司
  • 做爰全过程的视频的网站网推公司招聘
  • 福州网站制作专业机械制造设备类企业网站织梦模板
  • 南宁哪里做网站个人邮箱注册申请
  • 化妆品网站栏目设计大连网站设计菲尔莱斯
  • 深圳做网站优化工资多少自己做免费网站吗
  • 海口专业网站建设地址网络推广岗位职责和任职要求
  • 自己动手建设公司门户网站网站免费注册会员怎么做
  • 网站前端设计要做什么企业门户网站静态模板
  • 网站做语音识别装修设计软件网页版
  • 百度公司网站推广怎么做宝塔怎么创建网站
  • 大型网站开发费用导航网站好处
  • wordpress 图片加载很慢衡水网站优化
  • 魔站网站建设宁波网络图书馆
  • 重庆网站建设尚智逢源wordpress theme framework
  • dede无法更新网站主页到搜索运营是什么
  • 有口碑的南通网站建设page list wordpress
  • 注册或者浏览社交类网站时不恰当石家庄站内换乘示意图
  • 东城网站建设工作室wordpress官方网站
  • 如何修改网站标题开发商是干什么的
  • 门户网站制作全包php与mysql网站开发...
  • 江苏建设工程安全监督网站手机制作海报的软件免费
  • int域名网站有哪些北京网站建设+++招聘信息
  • 有哪些做电子商务的网站上海建网站价格
  • 海外网站空间wordpress评论等于注册
  • 怎么把网站链接做二维码电子商城网站开发公司