По какой-то причине MSVC НЕ скомпилировать пример подталкивание сериализации с помощью следующего кода:увеличить сериализации MSVC 2015 не компиляции в режиме DEBUG
class MyName
{
public:
MyName(std::string _name, std::string _family_name)
:name{ _name }, family_name{ _family_name }
{ }
private:
friend class boost::serialization::access;
template<class Archive>
void serialize(Archive & ar, const unsigned int version)
{ ar & name; ar & family_name; } std::string name; std::string family_name;
};
int main()
{
// create and open a character archive for output
std::stringstream ofs;
// save data to archive
{
MyName my_name("MyName", "FamilyName");
boost::archive::text_oarchive oa(ofs);
// write class instance to archive
oa << my_name;
// archive and stream closed when destructors are called
}
// save data to archive
{
MyName my_name("afsf", "dgsass");
boost::archive::text_iarchive oa(ofs);
// write class instance to archive
oa >> my_name;
// archive and stream closed when destructors are called
}
return 0;
}
я получаю ошибку follwing:
Severity Code Description Project File Line Suppression State
Error LNK2019 unresolved external symbol "public: __thiscall boost::archive::archive_exception::archive_exception(enum boost::archive::archive_exception::exception_code,char const *,char const *)" ([email protected]@[email protected]@[email protected][email protected]@[email protected]) referenced in function "protected: void __thiscall boost::archive::basic_text_iprimitive<class std::basic_istream<char,struct std::char_traits<char> > >::load<unsigned int>(unsigned int &)" ([email protected]@[email protected][email protected][email protected]@[email protected]@@[email protected]@@[email protected]@@[email protected]) cpp11_cpp14_cpp17 D:\Projects_Programing\__Testing\cpp11_cpp14_cpp17\cpp11_cpp14_cpp17\cpp11_cpp14_cpp17.obj 1
Но когда Я скомпилировал его в режиме выпуска. Я читал, что это может произойти из-за режима MSVC STRICT, но я пробовал, и он не работает.
У кого-нибудь такая ошибка?
Я составил простую структуру 'MyName', и она компилируется для меня. Пожалуйста, покажите свой класс 'MyName'. – lakeweb
@lakeweb Ниже вы можете увидеть реализацию MyName: 'класса MyName { общественности: MyName (станд :: строка _name, станд :: строка _family_name) : имя {_name}, {family_name _family_name} { } частный: класс друзей boost :: serialization :: access; template <класс Архив> void serialize (Archive & ar, const unsigned int version) { ar & name; ar & family_name; } std :: string name; std :: string family_name; }; ' –
Все еще компилируется в порядке. Я побежал, я думаю, что это SP3. Пакет обновления, который выходил где-то за последние полгода. Это единственное, о чем я могу думать здесь. Я использовал только два заголовка: text_oarchive.hpp и text_iarchive.hpp. Как насчет тебя? И я использую 1.62. Вы должны были бы разместить все это, это помогло бы. – lakeweb