linux下Boost序列化问题解决
由于项目需要,要使用boost,所以在网上找了一些例子帮助理解,其中遇到很多问题,再次总结记录一下。
#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>
#include <boost/array.hpp>
#include <iostream>
#include <sstream> std::stringstream ss; void save()
{
boost::archive::text_oarchive oa(ss);
boost::array<int, > a = { , , };
oa << a;
} void load()
{
boost::archive::text_iarchive ia(ss);
boost::array<int, > a;
ia >> a;
std::cout << a[] << ", " << a[] << ", " << a[] << std::endl;
} int main()
{
save();
load();
}
源码来自:http://zh.highscore.de/cpp/boost/serialization.html
上述代码命名为test.cpp,使用如下命令编译:
g++ -o main test.cpp
报错主要是undefined reference to boost::archive::archive_exception::archive_exceptiono();
网上说需要在编译的时候指定要使用的动态链接库,于是修改编译命令:
g++ -o main test.cpp -lboost_serialization
报错主要是undefined reference to boost::archive::text_iarchive_impl<boost::archive::text_iarchive>
undefined reference to boost::archive::archive_exception::~archive_exception()等
继续搜索,修改编译命令如下:
g++ -o main test.cpp -lboost_serialization -L /usr/boost_1_60_0/stage/lib
终于不报错了,但是执行./main的时候再次遇到错误: error while loading shared libraries: libboost_serialization.so.1.60.0: cannot open shared object file: No such file or directory .
解决:
1. 首先 find / -name libboost_serialization.so.1.60.0找到缺少的链接文件到底在那儿。
2. 使用LD_DEBUG=libs /usr/Coding/bin/main -v找到程序要去哪里找链接库。
3. 假设 trying file=/usr/lib/libboost_serialization.so.1.60.0 而链接库的实际存储位置是 /usr/local/lib/libboost_serialization.so.1.60.0,做一个软连接 ln -s /usr/local/lib/libboost_serialization.so.1.60.0 /usr/lib/libboost_serialization.so.1.60.0
linux下Boost序列化问题解决的更多相关文章
- linux 下Time_wait过多问题解决
linux 下Time_wait过多问题解决 net.ipv4.tcp_syncookies = 1表示开启SYN Cookies.当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SY ...
- linux下boost的安装与编译
1.从boost官网下载boost库包: 2.然后解压到linux下的任意一个文件夹, 3.进入boost_1_57文件夹下,不同的boost版本会解压城不同的库文件夹, 4.执行././bootst ...
- Linux 下 boost 库的安装,配置个人环境变量
部分引自: https://blog.csdn.net/this_capslock/article/details/47170313 1. 下载boost安装包并解压缩到http://www.boos ...
- boost.asio学习笔记一、linux下boost库的安装
欢迎转载,转载请注明原文地址:http://blog.csdn.net/majianfei1023/article/details/46761029 学习开源库第一步就是编译安装好库,然后执行成功一个 ...
- Linux下boost编译安装
说明:下面内容仅针对Linux环境(boost官网为:http://www.boost.org/,可从这里下载它的源代码包,这里要求下载.tar.gz包,而非.7z..zip或bz2包). 在当前目录 ...
- Linux下Boost交叉编译
http://davidlwq.iteye.com/blog/1580752 运行环境:ubuntu 12.04, boost 1.50.0 由于要把boost移植到arm板上去,所以折腾了一下,后来 ...
- Mysql依赖库Boost的源码安装,linux下boost库的安装
boost‘准标准库’安装过程.安装的是boost_1_60_0. (1)首先去下载最新的boost代码包,网址www.boost.org. (2)进入到自己的目录,解压: bzip2 -d bo ...
- Linux下boost库的编译、安装详解
下载boost源码 boost下载地址 解压到一个目录 tar -zxvf boost_1_66_0.tar.gz 编译boost库 进入boost_1_66_0目录中 cd boost_1_66_0 ...
- linux下中文乱码问题解决
1.首先输入locale,查看编码设置 2.是否安装中文支持,没有则安装中文语言支持 方法一:yum方式——完全的中文环境支持. #yum groupinstall chinese-support ...
随机推荐
- 12 Spring JdbcTemplate的使用
1.项目搭建 <1>数据库表account对应的账户实体类 package domain; import java.io.Serializable; /** * 账户实体类 */ publ ...
- vue总结的知识点
1.Vue生命周期钩子,都是干嘛用的? Vue实例从创建到销毁的过程,就是生命周期.Vue的生命周期包括:开始创建.初始化数据.编译模板.挂载Dom.渲染→更新→渲染.卸载等一系列过程.在Vue的整个 ...
- DSP未来五大发展趋势
在4G无线通信领域,数据吞吐量已经达到了3G时代的100到1000倍;在多媒体处理器领域,每天都有新的标准涌现出来;在更多其它DSP应用领域,密集的数据处理器需求不断给处理器设计团队带来新的挑战.随着 ...
- OpenJDK自动安装脚本 InstallOpenJDK.vbs
Oracle JDK 要收费了,Open JDK没有安装包,只有Zip,写了个安装脚本 InstallOpenJDK.vbs Rem ********************************* ...
- sql 数据库实时增量更新
---一下sql可以添加到作业中每秒执行一次 数据过多会消耗性能 --数据表如下,其中字段pid mid time price_type是一个组合主键--pid mid time price pr ...
- java之struts2的配置讲解(2)
在 java之struts框架入门教程 基础上,进行下列操作 1.结构对比 原来的项目结构图 现在的结构图 即从结构上可以看出,在HelloStruts项目中增加了config 文件夹(Source ...
- CORS讲解
跨域资源共享(CORS) 是一种机制,它使用额外的 HTTP 头来告诉浏览器 让运行在一个 origin (domain) 上的Web应用被准许访问来自不同源服务器上的指定的资源.当一个资源从与该资 ...
- [jsp学习笔记] jsp过滤器
- 生物网络,RNA 与疾病关联分析
题目: 大数据时代下基于网络算法和机器学习的非编码RNA 相关预测研究摘要:最近越来越多的生物实验表明非编码RNA 具有非常重要的生物学功能,参与细胞中的多项重要生命活动,调控许多基本且重要的生物过程 ...
- 匿名对象序列化为XML
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.X ...