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

网站psd 模板谷歌浏览器下载安装2022最新版

网站psd 模板,谷歌浏览器下载安装2022最新版,地方建立网站做SEM,洛阳市建设规划局网站初始ProtoBuf 序列化和反序列化的概念 序列化:把对象转换为字节序列的过程 称为对象的序列化。 反序列化:把字节序列恢复为对象的过程 称为对象的反序列化。 什么情况下需要序列化和反序列化? 存储数据:当你想把的内存中的对象状…

初始ProtoBuf

序列化和反序列化的概念

序列化:把对象转换为字节序列的过程 称为对象的序列化。
反序列化:把字节序列恢复为对象的过程 称为对象的反序列化。

什么情况下需要序列化和反序列化?

存储数据:当你想把的内存中的对象状态保存到⼀个⽂件中或者存到数据库中时。
⽹络传输:⽹络直接传输数据,但是⽆法直接传输对象,所以要在传输前序列化,传输完成后反
序列化成对象。例如我们之前学习过 socket 编程中发送与接收数据。

我们之前在学习HTTP阶段简单使用过json来进行序列化和反序列化操作,除了json还有XML和这里要介绍的ProtoBuf。

ProtoBuf的优点:

1.语言无关性,跨平台 :即支持多种语言和平台

2.高效性。比XML更小,更快,更为简单。

3.扩展性,兼容性好。你可以更新数据结构,⽽不影响和破坏原有的旧程序。

ProtoBuf支持的语言:

ProtoBuf使用特点

1. 编写 .proto ⽂件,⽬的是为了定义结构对象(message)及属性内容。
2. 使⽤ protoc 编译器编译 .proto ⽂件,⽣成⼀系列接⼝代码,存放在新⽣成头⽂件和源⽂件中。

如果我们使用的是C++,那么就会生成.h和.cc文件 

3. 依赖⽣成的接⼝,将编译⽣成的头⽂件包含进我们的代码中,实现对 .proto ⽂件中定义的字段进⾏ 设置和获取,和对 message 对象进⾏序列化和反序列化。

 总的来说:ProtoBuf 是需要依赖通过编译⽣成的头⽂件和源⽂件来使⽤的。

 这里举一个例子:

假设我们要设计一个类,可以把它看作三个部分

分别是:
定义一系列属性字段。这个是很容易的,比如int XXX;之类的

处理字段的方法:get set,这些实现起来不难,但是比较耗时。

处理的方法 :序列化 反序列化。这个就更耗时了,还有一定的难度。

因此,为了解决第二个和第三个问题,在适用了ProtoBuf后,我们在.proto文件中只需要定义对应的结构体对象,以及它的属性内容。

接着通过protoc编译器来自动的帮我们生成处理字段的方法,以及该类的序列化和反序列化。

也就是会帮我们生成一个.h和一个.cc文件,我们只需要包含它们就可以了。 

安装ProtoBuf 

这里的演示以v21.11版本为例

Windows下安装 

 先进入ProtoBuf的GitHub首页

找到 21.11

这里我们选择 win64

下载好并解压好后,打开

在bin目录里 

这个其实就是ProtoBuf的 编译器。接着我们把这个目录配置到系统环境变量中

最后,检查配置是否成功

打开cmd,输入 protoc --version

能够正确显示版本,说明配置成功了。

Ubuntu下安装 

下载 ProtoBuf 前⼀定要安装依赖库:autoconf automake libtool curl make g++ unzip 

 安装依赖库命令如下:

sudo apt-get install autoconf automake libtool curl make g++ unzip -y

 安装好后,再回到gitHub那里

如果要在 C++ 下使⽤ ProtoBuf,可以选择cpp.zip ;
如果要在 JAVA 下使⽤ ProtoBuf,可以选择 java.zip;

在这⾥我们希望⽀持全部语⾔,所以选择 protobuf-all-21.11.zip,右键将下载链接复制出来。 

然后在我们的Ubuntu云服务下直接输入

wget https://github.com/protocolbuffers/protobuf/releases/download/v21.11/protobuf-all-21.11.zip

 下载完后,解压zip包

unzip protobuf-all-21.11.zip

解压好后,进入生成的文件中

接下来才是真正安装ProtoBuf

进入解压好的文件后,执行以下指令:
 

# 第⼀步执⾏autogen.sh,但如果下载的是具体的某⼀⻔语⾔,不需要执⾏这⼀步。
./autogen.sh # 第⼆步执⾏configure,有两种执⾏⽅式,任选其⼀即可,如下:
# 1、protobuf默认安装在 /usr/local ⽬录,lib、bin都是分散的
./configure 
# 2、修改安装⽬录,统⼀安装在/usr/local/protobuf下
./configure --prefix=/usr/local/protobuf

完事后会多一个Makefile文件

完成后再次执行

make // 执⾏15分钟左右
make check // 执⾏15分钟左右
sudo make install

make check主要是确认之前的步骤是否正确。

另外,在make check的时候,可能会出现以下错误

出现以上错误的原因是test的模块⾥⾯有⾮常多的测试⽤例,这些⽤例对服务器环境要求特别严格,需要增⼤下swap分区

以下是步骤:

1.创建 swap 的文件(分配 3G 的swap分区大小) 

sudo fallocate -l 3G /swapfile

 2.然后执行:

swapoff -a

3.再执行

sudo fallocate -l 3G /swapfile

4.执行以下命令为 swapfile 文件设置正确的权限

sudo chmod 600 /swapfile

5.使用 mkswap 实用程序在文件上设置 Linux SWAP 区域:

sudo mkswap /swapfile

6.使用以下命令激活 swap 文件:

sudo swapon /swapfile

用以下命令验证:

sudo swapon --show

 7.要让创建好的 swap 分区永久生效,可以将 swapfile 路径内容写入到 /etc/fstab 文件当中 :

sudo cp /etc/fstab /etc/fstab.bak
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

如果还是不行的话,可以考虑源码的方式安装。

安装后验证

以上就说明安装成功了。

 

关于一些问题 

用g++编译代码时会报错:

 这个问题大致是没有找到对应的库,我们可以确定我们的库文件放在哪里:
我这里的库文件是在

ll /usr/local/lib这个路径下的:

接着我们再执行:

echo $LIBRARY_PATH

 来查看当前搜索库的路径:
如果发现跟刚刚的目录不相符,比如:

那么就会出现刚刚上述的问题。

我们可以修改当前用户的~/.bashrc文件,在文件的末尾添加上:

export LIBRARY_PATH=/usr/local/lib:

 然后保存退出后,再执行:
 

source ~/.bashrc

此时再查看我们的库搜索路径

就发现已经修改了,然后再用g++编译就不会报错了

 

http://www.hkea.cn/news/820041/

相关文章:

  • 自如网站做的好 服务哪个网站学seo是免费的
  • 国外网站阻止国内访问怎么做竞价推广工具
  • 建设一个网站需要哪些方面的开支百度人工客服
  • 品牌网站建设-建站之路最新疫情新闻100字
  • 东莞网站优化科技有限公司怀柔网站整站优化公司
  • 郑州网站建设联系方式外链是什么意思
  • 用wordpress做网站教程电脑优化大师有用吗
  • 佛山企业网站制作今日热点新闻事件
  • 企业网站网络推广黑帽seo培训
  • 欧美做的爱爱网站有哪些广告推广赚钱
  • 泉州网站建设工作室谷歌seo价格
  • 国建设委员会网站百度推广一天烧几千
  • 做网站 花园路国贸营销推广方案包括哪些内容
  • 做商城网站哪里买口碑营销属于什么营销
  • 鞋子 东莞网站建设真正的免费建站在这里
  • 网站上微信的链接怎么做项目平台
  • 做网站后有人抢注关键词网络营销方案策划论文
  • 苏州网站建设网站seo优化的方法
  • 设计网装修seo顾问服
  • 网站ip拦截免费网站搭建平台
  • 深圳企业网站建设公司快速申请免费个人网站
  • 唯品会 一家专门做特卖的网站沈阳seo按天计费
  • 聊城手机网站建设郑州seo服务技术
  • 个人定做衣服店江门seo推广公司
  • 网站开发与网站建设山东济南seo整站优化费用
  • 香港疫情最新消息今天深圳seo教程
  • 维护一个网站难吗免费发布外链
  • 南安市网站建设成都今天重大新闻事件
  • 网站后台补丁如何做软文有哪几种类型
  • 网站建设的费用包括哪些内容资讯门户类网站有哪些