Linux下安装和使用boost库

由于在毕业设计中需要用到C++对象序列化工具,所以想利用boost库中的serialization库。Boost库分为两个部分来使用,一是直接使用对应的头文件,二是需要编译安装相应的库才可以使用。下面记录一下今天的安装和使用过程(整个boost库全部安装):

一、安装boost

(1)到www.boost.org下载相应的代码包,我下载的是boost_1_52_0.tar.bz2

(2)进入自己的工作目录执行解压操作:

  luoxiongwei@luoxiongwei:~$bzip2 -d boost_1_52_0.tar.bz2

  luoxiongwei@luoxiongwei:~$tar -xvf  boost_1_52_0.tar

  luoxiongwei@luoxiongwei:~$cd boost_1_52_0

  luoxiongwei@luoxiongwei:~/boost_1_52_0$ ./bootstrap.sh //生成安装工具bjamb2

(3)这里利用b2工具进行安装,可以使用./b2 --help 查看命令选项

(4)准备安装boost

luoxiongwei@luoxiongwei:~/boost_1_52_0$ sudo ./b2 install

安装完毕后的头文件默认是在/usr/local/include目录下,.a.so/usr/local/lib目录下。

然后将需要使用的库sudo cp/usr/lib 。不然在执行代码时,ldd会提示找不到.so文件。

./main: error while loading shared libraries: libboost_serialization.so.1.52.0: cannot open shared object file: No such file or directory

二、使用boost库:

代码如下:

[cpp] view plain copy
  1. #include <iostream>  
  2.   
  3. #include <sstream>  
  4.   
  5. #include <string>  
  6.   
  7. #include <boost/archive/text_iarchive.hpp>  
  8.   
  9. #include <boost/archive/text_oarchive.hpp>  
  10.   
  11. #include <vector>  
  12.   
  13. #include <boost/serialization/vector.hpp>  
  14.   
  15. #include <fstream>  
  16.   
  17. using namespace std;  
  18.   
  19. using namespace boost::serialization;  
  20.   
  21. using namespace boost::archive;  
  22.   
  23.   
  24. int main()  
  25.   
  26. {  
  27.   
  28.      vector<int> v;  
  29.   
  30.      for(int i=0;i!=12;i++)  
  31.   
  32.      {     
  33.   
  34.          v.push_back(i);  
  35.   
  36.      }     
  37.   
  38.     ofstream os("file",ios::out);  
  39.   
  40.     text_oarchive oa(os);  
  41.      oa<<v;  
  42.     os.close();      
  43.   
  44.      ifstream is("file",ios::in);  
  45.   
  46.      text_iarchive ia(is);  
  47.   
  48.   
  49.     vector<int> vr;   
  50.   
  51.     ia>>vr;  
  52.   
  53.   
  54. is.close();  
  55.   
  56.   
  57.     for(size_t i=0;i!=vr.size();++i)                                                                             
  58.   
  59.       cout<<vr[i]<<endl;                                                                                         
  60.   
  61.                                                                                                                                                                                       
  62.   
  63.     return 0;                                                                                                    
  64.   
  65. }                


 

luoxiongwei@luoxiongwei:~$ g++ -o main testboost.cpp -L/usr/local/lib -lboost_serialization 

执行./main

上述代码完成了vector容器的序列化和反序列化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/352194.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

javaone_JavaOne 2012:在JVM上诊断应用程序

javaone值得参加Staffan Larsen &#xff08;Oracle Java Serviceability Architect&#xff09;的演讲“ 在JVM上诊断您的应用程序 ”&#xff08;Hilton Plaza A / B&#xff09;&#xff0c;只是为了学习Oracle JVM 7提供的新jcmd命令行工具。该演示对我来说是“奖金”&…

高斯曲率求表面极值点

1.基本概念 平均曲率、主曲率和高斯曲率是曲率的三个基本要素。 法曲率&#xff1a;曲面在一点沿着不同方向的弯曲程度不同。或者说曲面离开切平面的速度不同。这个弯曲属性可以用这一点的沿着这个方法的法曲率刻画 主曲率&#xff1a;过曲面上某个点上具有无穷个正交曲率&…

g++基础知识

一、编译过程&#xff1a; 1&#xff09;预处理&#xff0c;生成.i文件 2&#xff09;转换成为汇编语言&#xff0c;生成.s文件 3&#xff09;汇编变为目标代码&#xff08;机器代码&#xff09;&#xff0c;生成.o文件 4&#xff09;链接目标代码&#xff0c;生成可执行程…

如何:使用Json插入数据库并从中读取

在本文中&#xff0c;我们将为Speedment创建一个插件&#xff0c;该插件使用Gson生成序列化和反序列化逻辑&#xff0c;从而使其在数据库实体和JSON字符串之间进行映射非常容易。 这将有助于展示Speedment代码生成的可扩展性&#xff0c;同时探索Gson库的一些很酷的功能。 Spe…

C语言pow()函数:求x的y次方(次幂)

1、头文件&#xff1a;#include2、原型&#xff1a;double pow(double x, double y);pow() 函数用来求 x 的 y 次幂&#xff08;次方&#xff09; pow()用来计算以x 为底的 y 次方值&#xff0c;然后将结果返回。设返回值为 ret&#xff0c;则 ret xy。 3、可能导致错误的…

本周学习总结JAVA

6. 为如下代码加上异常处理 byte[] content null; FileInputStream fis new FileInputStream("testfis.txt"); int bytesAvailabe fis.available();//获得该文件可用的字节数 if(bytesAvailabe>0){content new byte[bytesAvailabe];//创建可容纳文件大小的数组…

Day18 226翻转二叉树 101对称二叉树 100相同的树 572另一棵树的子树

226 翻转二叉树 递归前序遍历和后序遍历&#xff1a; class Solution { public:void swap(TreeNode*&a,TreeNode*&b){TreeNode*tmp a;a b;b tmp;}void reverseTree(TreeNode* cur){if(curnullptr) return;swap(cur->left,cur->right);reverseTree(cur->l…

python删除列表中字符串_python - 删除字符串中的字符列表

如果您正在使用python2并且您的输入是字符串(不是unicodes)&#xff0c;那么绝对最好的方法是remove_chars_translate_bytes&#xff1a;>>> chars_to_remove [., !, ?]>>> subj A.B!C?>>> subj.translate(None, .join(chars_to_remove))ABC否则…

C语言的格式控制符问题

写C程序遇到这样一个问题&#xff0c;定义了double变量&#xff0c;printf输出却要%f。一直以为应该用%lf&#xff0c;事实上VC6.0用%lf会报错。原因还要在探究。 贴吧有人说&#xff1a;double变量&#xff0c;scanf时必须用%lf&#xff0c;printf时要用%f或者%lf&#xff08;…

php无法用mail函数发送邮件之原因

[导读]PHP 需要一个已安装且正在运行的邮件系统&#xff0c;以便使邮件函数mail()可用。所用的邮件系统程序通过在 php.ini 文件中进行设置。用如下代码发送邮件&#xff0c;可总是发送失败。 [php] view plaincopyprint? 01.<?php 02.$to "xxxxxxxxqq.com";…

Linux内核设计与实现 总结笔记(第五章)系统调用

系统调用 内核提供了用户进程和内核交互的接口&#xff0c;使得应用程序可以受限制的访问硬件设备。 提供这些接口主要是为了保证系统稳定可靠&#xff0c;避免应用程序恣意妄行。 一、内核通信 系统调用在用户空间进程和硬件设备之间添加中间才能。作用有三&#xff1a; 为用户…

爬虫软件python彻底卸载_Python爬虫实践:如何优雅地删除豆瓣小组的帖子

前言文章起源于自己的一个需求&#xff1a;想要删除掉自己的若干个小号在豆瓣小组上的发帖及回复记录。这是一件看似简单的事情&#xff0c;但是一遍一遍的重复操作实在让我感到非常绝望&#xff0c;特别是删除自己的回复时&#xff0c;有时候回复的帖子的回复有好几十页&#…

高斯卷积核如何生成 C语言实现

对于学图像专业的人来说&#xff0c;对图像进行高斯滤波应该不会陌生&#xff0c;本质上就是将图像与高斯核进行卷积。 但是高斯核是如何生成的呢。matlab中有函数能自动生成高斯卷积核&#xff1a; gsfspecial(gaussian,3,1) gs 0.0751 0.1238 0.0751 0.1238 0.…

连接MySQL数据库时常见故障问题的分析与解决

连接MySQL数据库时常见故障问题的分析与解决 初学的mysql网友好象经常会碰到mysql无法连接的错误。特开贴收集这样问题的现象和原因。 先自己扔块砖头出来。 归纳如下&#xff1a; 故障现象 : 无法连接 mysql 错误信息1 &#xff1a;ERROR 1045 (28000): Access deni…

如何判断两个平面相交_七年级下册相交线与平行线全章节复习

5.1 相交线(一)相交线两条直线相交&#xff0c;形成4个角。1、两条直线相交所成的四个角中&#xff0c;相邻的两个角叫做邻补角&#xff0c;特点是两个角共用一条边&#xff0c;另一条边互为反向延长线&#xff0c;性质是邻补角互补&#xff1b;相对的两个角叫做对顶角&#xf…

spring dao层注解_Spring– DAO和服务层

spring dao层注解欢迎来到Spring教程的第三部分。 在这一部分中&#xff0c;我们将继续编写Timesheet应用程序&#xff0c;这次我们将实现DAO层&#xff0c;业务服务并编写一些测试。 在上一部分中&#xff0c;我们定义了GenericDao接口&#xff0c;该接口告诉我们需要对实体执…

Word 2007 如何自动生成目录以及设置正文第一页?

首先&#xff0c;讲解如何生成目录。 第一步&#xff0c;设置目录的小结的题目。这个需要对一级标题&#xff0c;二级标题&#xff0c;三级标题进行设置&#xff0c;设置方法如下图所示&#xff1a; 可以点击右键&#xff0c;对标题的格式进行修改。 第二步&#xff0c;直接生成…

python 优先队列_python中使用优先队列

相信对于队列的概念大家都不会陌生&#xff0c;这种先入先出的数据结构应用很广泛&#xff0c;像一般的生产消费都会用到队列&#xff0c;关于Queue的用法介绍可以参考我之前的文章 python中的Queue与多进程&#xff08;multiprocessing&#xff09;还有栈&#xff0c;栈是一种…

JHipster入门,第2部分

所以你回来了&#xff01; 在本系列的最后一部分中 &#xff0c;我们采用了单片路线创建了一个JHipster应用程序。 这是红色药丸路线&#xff1b; 生活与您习惯的差不多。 但是也许您喜欢挑战。 也许您想超越红色药丸并尝试蓝色药丸。 在这种情况下&#xff0c;Blue Pill是微服…

由于html元素加载导致的问题

js中要求执行的事件是在完全加载完&#xff0c;但由于本地环境测试一直没发现出问题&#xff0c;在上线后由于网络延迟导致元素加载慢&#xff0c;而事件执行完&#xff0c;没达到预期目标。 这时就需要用到属性 readyState readyState 属性返回当前文档的状态&#xff08;载入…