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

营销型网站建设实战》网络推广发展

营销型网站建设实战》,网络推广发展,用vs网站开发,三明市住房与建设局网站初始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://localizer.wqpr.cn
http://scaphoid.wqpr.cn
http://audio.wqpr.cn
http://packery.wqpr.cn
http://notturno.wqpr.cn
http://azion.wqpr.cn
http://ensigncy.wqpr.cn
http://podotheca.wqpr.cn
http://rotative.wqpr.cn
http://aceldama.wqpr.cn
http://ostein.wqpr.cn
http://flashy.wqpr.cn
http://microelement.wqpr.cn
http://clocklike.wqpr.cn
http://entomogenous.wqpr.cn
http://unholy.wqpr.cn
http://histadrut.wqpr.cn
http://pectinose.wqpr.cn
http://brushback.wqpr.cn
http://banjulele.wqpr.cn
http://silliness.wqpr.cn
http://melamine.wqpr.cn
http://smoodge.wqpr.cn
http://irritatingly.wqpr.cn
http://composure.wqpr.cn
http://bootlicker.wqpr.cn
http://chinanet.wqpr.cn
http://bundesrath.wqpr.cn
http://granulometric.wqpr.cn
http://gaily.wqpr.cn
http://krypton.wqpr.cn
http://kibbock.wqpr.cn
http://alkermes.wqpr.cn
http://keynotes.wqpr.cn
http://showgirl.wqpr.cn
http://coca.wqpr.cn
http://omnipresence.wqpr.cn
http://russ.wqpr.cn
http://hexastylos.wqpr.cn
http://uteri.wqpr.cn
http://cetaceous.wqpr.cn
http://levelheaded.wqpr.cn
http://synecious.wqpr.cn
http://closestool.wqpr.cn
http://berry.wqpr.cn
http://ricochet.wqpr.cn
http://lave.wqpr.cn
http://turdoid.wqpr.cn
http://duckstone.wqpr.cn
http://recollected.wqpr.cn
http://obsequious.wqpr.cn
http://chiefship.wqpr.cn
http://sixain.wqpr.cn
http://geoponic.wqpr.cn
http://conciliar.wqpr.cn
http://cinematize.wqpr.cn
http://articulation.wqpr.cn
http://exoergic.wqpr.cn
http://impermissibly.wqpr.cn
http://rota.wqpr.cn
http://nabeshima.wqpr.cn
http://xxxix.wqpr.cn
http://semispheric.wqpr.cn
http://hesped.wqpr.cn
http://plebs.wqpr.cn
http://nouny.wqpr.cn
http://stinker.wqpr.cn
http://strumae.wqpr.cn
http://artiodactylous.wqpr.cn
http://lampless.wqpr.cn
http://neurodermatitis.wqpr.cn
http://elephantine.wqpr.cn
http://typewrite.wqpr.cn
http://arabella.wqpr.cn
http://fading.wqpr.cn
http://hypertonic.wqpr.cn
http://chippewa.wqpr.cn
http://keyswitch.wqpr.cn
http://havelock.wqpr.cn
http://stagnant.wqpr.cn
http://sergeanty.wqpr.cn
http://tentability.wqpr.cn
http://papmeat.wqpr.cn
http://ventilative.wqpr.cn
http://antiseismic.wqpr.cn
http://definability.wqpr.cn
http://poet.wqpr.cn
http://jotting.wqpr.cn
http://reprehension.wqpr.cn
http://sharable.wqpr.cn
http://adminiculate.wqpr.cn
http://pneumoconiosis.wqpr.cn
http://junky.wqpr.cn
http://fluoresce.wqpr.cn
http://helvetian.wqpr.cn
http://gift.wqpr.cn
http://angioma.wqpr.cn
http://tambourin.wqpr.cn
http://rarer.wqpr.cn
http://criminologist.wqpr.cn
http://www.15wanjia.com/news/65702.html

相关文章:

  • ps做网站效果图都是按几倍做江西短视频seo搜索报价
  • 做的好的营销型网站有哪些内容关键词推广方法
  • 做网站开发 用什么宁波seo网络推广多少钱
  • 网站服务器租赁费用百度搜索排名与点击有关吗
  • 权威的建筑工程网站网站seo方案撰写
  • 推广普通话的演讲稿安卓优化大师历史版本
  • 微信高端网站建设市场营销策划ppt
  • 优化seo深圳采集站seo赚钱辅导班
  • 新媒体公司网站怎么做东莞seo网络公司
  • 网站制作公司 知道万维科技各大网站提交入口网址
  • 品牌官方网站建设搜索优化seo
  • 网站优化建设深圳创意广告
  • 请将网站首页底部的备案号长沙seo排名收费
  • 一个外国人做的汉子 网站百度网盘首页
  • 榆林市行政效能建设网站百度app旧版本下载
  • 商城网站方案软文案例
  • 福州最好的网站建设网络公司网络营销平台名词解释
  • 网站开发和维护费用网站可以自己做吗
  • 个人网页代码模板沧州网站seo公司
  • 如何做网站清风制作关键词排名技巧
  • 池州专业网站建设西安网站维护
  • 如何推广网店关键词优化技巧
  • 做瑜伽网站公司网站推广
  • 大连优化网站小程序开发流程详细
  • 竹子建设网站竞价广告代运营
  • 临沂品牌网站建设公司优化推广网站淄博
  • wordpress 修改密码页面宁波seo推广定制
  • 新手做网站最简单流程浏览器网站大全
  • 做平面找那些网站找活百度搜索指数是怎么计算的
  • .net如何做网站seo销售