gpt4 book ai didi

c++ - 为什么我不能编译 Boost.Serialization 演示?

转载 作者:行者123 更新时间:2023-12-03 07:25:55 27 4
gpt4 key购买 nike

我正在运行 Ubuntu 16.04。我正在尝试设置 Boost.Serialization,但在编译 tutorial 中的第一个演示时遇到了麻烦。 (标题为一个非常简单的案例)。我关注了 Boost Getting Started用于安装 Boost 和构建序列化的页面,执行以下操作:

  • SourceForge 下载代码(我试过不同的版本,包括 1.67.0 和 1.55.0)
  • cd boost_1_55_0
  • ./bootstrap.sh --prefix=/usr/local --with-libraries=serialization
  • sudo ./b2 install
  • 检查 /usr/local/include/usr/local/lib包括相关的 Boost 文件

  • 然后我编译 demo.cpp使用
    g++ -o demo demo.cpp -I /usr/local/include/boost -l boost_serialization
    并得到以下错误:

    /tmp/cc9a7HRg.o: In function boost::archive::text_iarchive::text_iarchive(std::istream&, unsigned int)':
    demo.cpp:(.text._ZN5boost7archive13text_iarchiveC2ERSij[_ZN5boost7archive13text_iarchiveC5ERSij]+0x36): undefined reference to
    boost::archive::detail::shared_ptr_helper::shared_ptr_helper()' /tmp/cc9a7HRg.o: In function boost::archive::text_iarchive::~text_iarchive()':
    demo.cpp:(.text._ZN5boost7archive13text_iarchiveD2Ev[_ZN5boost7archive13text_iarchiveD5Ev]+0x24): undefined reference to
    boost::archive::detail::shared_ptr_helper::~shared_ptr_helper()' collect2: error: ld returned 1 exit status



    导致错误的行是
    boost::archive::text_iarchive ia(ifs);

    值得一提的是输出线
    boost::archive::text_oarchive oa(ofs);

    在最近的重新安装之前导致类似的错误。此外,如果我注释掉所有输入(包括导致错误的行),程序编译正常,但在运行时会导致段错误。我已包含 cout << "done" << endl;main 结尾,但没有达到。

    有人知道可能导致此错误的原因吗?对不起,如果这似乎是一个愚蠢的问题。我对 C++ 开发非常陌生。先感谢您!

    最佳答案

    sudo apt-get install libboost-all-dev

    为我工作。

    此命令与 lboyd 的解决方案来自同一来源:
    https://www.technical-recipes.com/2012/getting-started-with-the-boost-libraries-in-ubuntu-linux/

    然后我编译
    g++ serialization.cpp -lboost_serialization -lboost_system

    关于c++ - 为什么我不能编译 Boost.Serialization 演示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51015207/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com