本文介绍了,ubuntu平台下,boost序列化库的安装,编译,使用。
目的
安装序列化库的目的:实现mqtt/payload报文信息
Install
- 下载:http://www.boost.org/
- 解压:tar -zxvf boost_1_60_0.tar.bz2 (ps: 依据你自己下载的版本)
- 执行./bootstrap.sh脚本
- 修改 project -config.jam, 作用:自定义编译配置
- 单独编译序列化库,./bjam –with -serialization install (**:root下编译,否则权限不够)
萌萌哒的CASE
Example1
/*
* who.cpp
*/
#include <iostream>
#include <string>
#include <boost/regex.hpp>
using namespace std;
using namespace boost;
int main() {
string s = "who,lives:in-a,pineapple under the sea?";
regex re(",|:|-|\\s+");
sregex_token_iterator
p(s.begin( ), s.end( ), re, -1);
sregex_token_iterator end;
while (p != end)
cout << *p++ << '\n';
return 0;
}
编译
g++ -o wooo wo.cpp -L. /usr/local/lib/libboost_regex.so
(一定要加上动态链接库,boost动态链接库路径: /usr/local/lib/..)
运行
./wooo
输出结果
who
lives
in
a
pineapple
under
the
sea?
例子2: 序列化
//archive.cpp
#include <boost/archive/text_oarchive.hpp>
#include <iostream>
using namespace std;
using namespace boost;
int main()
{
boost::archive::text_oarchive oa(std::cout);
int i = 10;
oa << i;
return 0;
}
编译
g++ -o ok archive.cpp -L. /usr/local/lib/libboost_serialization.so /usr/local/lib/libboost_wserialization.so
后面的链接库好长,可以定义变量简化
seria="/usr/local/lib/libboost_serialization.so /usr/local/lib/libboost_wserialization.so"
g++ -o ok archive.cpp $seria
运行
./ok
输出结果
22 serialization::archive 14 10
动态链接库的概念很重要