เกิดข้อผิดพลาดตอนที่พยายามจะ serialize เชื้อโรคที่ติดต่ดทางเพศ::wstring กับเพิ่ม::serialization

0

คำถาม

ฉันกำลังพยายาม serialize เรียนกับ std::wstring ตัวแปรแต่สิ่งที่ฉันกำลังบอกเธอหลาย undefined reference to ~ เกิดข้อผิดพลาด.

ฉันไม่เหมือนจะเป็นหายไปมีส่วนหัวหรือไลบรารี&จากสิ่งที่ฉันได้อ่านจาก boost::serialization เอกสาร std::wstring ดูเหมือนจะเป็นคร่ำครึประเภทนั่นไม่ได้ต้องการกำลังยกเลิกระบบ.

ฉันเคยถูกรวมต่อไปนี้ส่วนหัว:

#include <boost/archive/text_woarchive.hpp>
#include <boost/archive/text_wiarchive.hpp>
#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>
#include <boost/serialization/string.hpp>
#include <boost/serialization/vector.hpp>
#include <iostream>
#include <sstream>
#include <string>
#include <locale>

คลาสฉันพยายามจะ serialize ดูเหมือนนี้:

class A
{
public:
    A() = default;

    void setWstr(const std::wstring &wstr)
    {
        wstr_ = wstr;
    }

    const std::wstring &getWstr()
    {
        return wstr_;
    };

private:
    std::wstring wstr_;

    friend class boost::serialization::access;

    template <typename Archive>
    void serialize(Archive &ar, const unsigned int version)
    {
        ar &boost::serialization::make_nvp("wstr", wstr_);
    }
};

int main()
{
    std::wstring sdn = L"src dept";

    A test;
    test.setWstr(sdn);

    std::wstringstream ss;
    boost::archive::text_woarchive oa(ss);
    oa << test;

    return 0;
}

ที่เกิดข้อผิดพลาดฉันกำลังจะเป็นพวกนี้:

in function `text_woarchive_impl':
undefined reference to `boost::archive::basic_text_oprimitive<std::basic_ostream<wchar_t, std::char_traits<wchar_t> > >::basic_text_oprimitive(std::basic_ostream<wchar_t, std::char_traits<wchar_t> >&, bool)'

in function `text_woarchive_impl':
undefined reference to `boost::archive::basic_text_oarchive<boost::archive::text_woarchive>::init()'

`~text_woarchive_impl':
undefined reference to `boost::archive::basic_text_oprimitive<std::basic_ostream<wchar_t, std::char_traits<wchar_t> > >::~basic_text_oprimitive()'

มันมีทางที่จะแก้ไขเรื่องนี้?

-เอามาขึ้นจอหลัก-ฉันเชื่อมต่อไปนี้บรรณารักษ์

 -lboost_serialization  -lpthread  -lboost_system  -lboost_program_options  -lboost_chrono
boost c++ c++11 serialization
2021-11-19 07:49:53
1

คำตอบที่ดีที่สุด

2

ที่ serialization วัตถุเป็นแยกออกเป็นสองไลบรารี: boost_serialization (ซึ่งคุณที่เชื่อมโยงต่อต้าน)และที่สัมพันธ์กันสำหรับวัตถุ wchar เป็นต้น ใน boost_wserialization. ดังนั้นคุณต้องเพิ่ม -lboost_wserialization ต้องของคุณ linker ธง

2021-11-19 08:24:09

แม่สูบบุหรี่ มีบางอย่างที่ฉันไม่รู้เกี่ยวกับเรื่องเพิ่ม Serialization. เหตุผล#4678 องอยู่ให้ห่างจาก wchar_t...
sehe

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่