zoukankan      html  css  js  c++  java
  • 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, 3> a = { 0, 1, 2 }; oa << a; } void load() { boost::archive::text_iarchive ia(ss); boost::array<int, 3> a; ia >> a; std::cout << a[0] << ", " << a[1] << ", " << a[2] << 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

  • 相关阅读:
    mybatis之@Select、@Insert、@Delete、@Param
    com.mysql.jdbc.MysqlDataTruncation: Data truncation: Truncated incorrect DOUBLE value:...
    fasterxml.jackson 将对象转换为json报错处理
    JPA之@Transient
    JPA之@OneToMany、@ManyToOne、@JoinColumn
    JPA之@Entity、@Table、@Column、@Id
    @EnableAutoConfiguration和@SpringbootApplication注解
    Spring JdbcTemplate详解
    网页上播放音频、视频Mp3,Mp4
    编码转换 Native / UTF-8 / Unicode
  • 原文地址:https://www.cnblogs.com/ttssrs/p/5302367.html
Copyright © 2011-2022 走看看