Linux下安装和使用boost库
来源:互联网 发布:中世纪2优化9蒙古出现 编辑:程序博客网 时间:2024/05/21 15:51
由于在毕业设计中需要用到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 //生成安装工具bjam和b2
(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库:
代码如下:
#include <iostream>#include <sstream>#include <string>#include <boost/archive/text_iarchive.hpp>#include <boost/archive/text_oarchive.hpp>#include <vector>#include <boost/serialization/vector.hpp>#include <fstream>using namespace std;using namespace boost::serialization;using namespace boost::archive;int main(){ vector<int> v; for(int i=0;i!=12;i++) { v.push_back(i); } ofstream os("file",ios::out); text_oarchive oa(os); oa<<v; os.close(); ifstream is("file",ios::in); text_iarchive ia(is); vector<int> vr; ia>>vr;is.close(); for(size_t i=0;i!=vr.size();++i) cout<<vr[i]<<endl; return 0; }
luoxiongwei@luoxiongwei:~$ g++ -o main testboost.cpp -L/usr/local/lib -lboost_serialization
执行./main
上述代码完成了vector容器的序列化和反序列化。
- Linux下安装和使用boost库
- Linux下安装和使用boost库
- Linux下安装和使用boost库
- Linux下安装和使用boost库
- VS2010下安装和使用boost库
- VS2010下安装和使用boost库
- VS2008下安装和使用BOOST库boost-1_54
- VS2008下安装和使用BOOST库boost-1_54
- linux下boost库安装
- linux(centos)下安装boost库及使用
- Linux下BOOST库的安装与使用
- linux下boost库的安装及使用
- linux下安装boost及boost::thread的使用
- Ubuntu12.04下Boost安装和使用
- linux下安装boost
- Linux下安装boost
- linux 下安装boost
- linux下安装boost
- The Architecture of Open Source Application
- 深度LINUX启动软件中心一直处于“加载”状态
- android json解析及简单例子
- Emacs 显示行数
- SVM多类分类---多个二值分类combine
- Linux下安装和使用boost库
- ie和火狐下载时的兼容问题
- Linux 硬件信息查看 dmidecode
- 设置UIButton字体大小
- How to add AD attribute?
- 1、如何处理频繁快速点击事件
- javascript 判断两个日期的大小
- Windows驱动开发WDM (7)- 异步IRP
- Android.mk简介