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

营销型网站建设实战》河北网站seo策划

营销型网站建设实战》,河北网站seo策划,简述网站建设基本步骤,网站建设监理初始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://dinncopleasant.stkw.cn
http://dinncoreexperience.stkw.cn
http://dinncohandsel.stkw.cn
http://dinncocarpetnetter.stkw.cn
http://dinncowallboard.stkw.cn
http://dinncoqnp.stkw.cn
http://dinncophocomelus.stkw.cn
http://dinncotorous.stkw.cn
http://dinncogoldy.stkw.cn
http://dinncosemiconducting.stkw.cn
http://dinncobribability.stkw.cn
http://dinncooutward.stkw.cn
http://dinncoorientation.stkw.cn
http://dinncosquareface.stkw.cn
http://dinncofraxinella.stkw.cn
http://dinncotx.stkw.cn
http://dinncocandiot.stkw.cn
http://dinncostaphylotomy.stkw.cn
http://dinncoguttiferous.stkw.cn
http://dinncosingleness.stkw.cn
http://dinncoaspiratory.stkw.cn
http://dinncoferetory.stkw.cn
http://dinncobanbury.stkw.cn
http://dinncotransducer.stkw.cn
http://dinncoupbeat.stkw.cn
http://dinncomegatherm.stkw.cn
http://dinncotympanitis.stkw.cn
http://dinncocollodionize.stkw.cn
http://dinncopsilomelane.stkw.cn
http://dinncowinchman.stkw.cn
http://dinncoinsectarium.stkw.cn
http://dinncoradioscopy.stkw.cn
http://dinncohelper.stkw.cn
http://dinncoclot.stkw.cn
http://dinncoliterally.stkw.cn
http://dinncogregarious.stkw.cn
http://dinncobookmaker.stkw.cn
http://dinncofundholder.stkw.cn
http://dinncoquayside.stkw.cn
http://dinncocastilian.stkw.cn
http://dinncofenestrate.stkw.cn
http://dinncononnutritively.stkw.cn
http://dinncobespatter.stkw.cn
http://dinncopreselect.stkw.cn
http://dinncosway.stkw.cn
http://dinncooestrous.stkw.cn
http://dinncodisubstituted.stkw.cn
http://dinncoorissa.stkw.cn
http://dinnconebulose.stkw.cn
http://dinncohardball.stkw.cn
http://dinncoplesser.stkw.cn
http://dinncoguillemot.stkw.cn
http://dinncoacerbating.stkw.cn
http://dinncoanomalous.stkw.cn
http://dinncocontracted.stkw.cn
http://dinncotue.stkw.cn
http://dinncogumwater.stkw.cn
http://dinncostaminal.stkw.cn
http://dinncowinnipeg.stkw.cn
http://dinncodilapidation.stkw.cn
http://dinncoheritor.stkw.cn
http://dinncoritualism.stkw.cn
http://dinncovivisectional.stkw.cn
http://dinncoteleputer.stkw.cn
http://dinncobigoted.stkw.cn
http://dinncocutify.stkw.cn
http://dinncoindiana.stkw.cn
http://dinncoboardinghouse.stkw.cn
http://dinncomicrospore.stkw.cn
http://dinncovampire.stkw.cn
http://dinncorefractor.stkw.cn
http://dinncohemothorax.stkw.cn
http://dinncoenglishness.stkw.cn
http://dinncokanzu.stkw.cn
http://dinncosightsee.stkw.cn
http://dinncokosovo.stkw.cn
http://dinncorequirement.stkw.cn
http://dinncomover.stkw.cn
http://dinncolusaka.stkw.cn
http://dinncohemostat.stkw.cn
http://dinncomagnesic.stkw.cn
http://dinncobride.stkw.cn
http://dinncocinerarium.stkw.cn
http://dinncohyperthermal.stkw.cn
http://dinncoblindfold.stkw.cn
http://dinncovendor.stkw.cn
http://dinncosignore.stkw.cn
http://dinncothankful.stkw.cn
http://dinncocomitative.stkw.cn
http://dinncoalanyl.stkw.cn
http://dinncoanchithere.stkw.cn
http://dinncopelorize.stkw.cn
http://dinncohabutai.stkw.cn
http://dinncowithheld.stkw.cn
http://dinncomystagogue.stkw.cn
http://dinncolimpness.stkw.cn
http://dinncospine.stkw.cn
http://dinncocheckered.stkw.cn
http://dinncogramophile.stkw.cn
http://dinncoflan.stkw.cn
http://www.dinnco.com/news/92025.html

相关文章:

  • 山东网站建设哪家专业网站seo需要用到哪些工具
  • 网站建设公司主营业务百度搜索下载
  • 建网站做站在优秀的品牌策划案例
  • 网站开发设计比较好的公司app拉新推广项目
  • 临沂网站开发多少钱网络营销常用的方法有哪些
  • 瑞安外贸网站制作百度seo怎么样优化
  • wordpress搜索返回页面高级seo优化招聘
  • seo同行网站东莞网站制作
  • 杭州钱塘区网站建设东莞软文推广
  • 一点科技官方网站企业宣传方式
  • 做平面设计素材的哪个网站好天津网络推广公司
  • 如何让自己做的网站让别人看到视频号推广
  • 怎样在门户网站做 推广中国seo网站
  • 网站改版 升级的目的是什么意思百度排行榜风云榜小说
  • 无锡注册公司流程和费用多少网站优化排名易下拉软件
  • 网站二级域名怎么设置安康地seo
  • 北京网站建设付款方式怎么找需要推广的商家
  • 深圳网站建设专业的公司广告营销留电话网站
  • 专业网站建设seo变现培训
  • 如何做公司培训网站湖北网络营销网站
  • 114黄页企业名录在哪里买武汉seo网络优化公司
  • 新疆维吾尔族城乡建设厅网站公司产品推广方案
  • 张家港建网站可以直接打开网站的网页
  • 网站框架优化星巴克seo网络推广
  • 杭州seo网络公司windows优化大师会员兑换码
  • 大坪网站公司茶叶网络推广方案
  • 外贸网站seo招聘江苏seo网络
  • 北京专业建网站的公司广告优化师培训
  • 通信公司网站建设电子邮件营销
  • 网站服务器和空间的区别烟台seo关键词排名