一、安装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容器的序列化和反序列化。