2

I am new to VC++ 12.0 with MFC and also the boost library. However, I need to use the boost library to serialize the vector storing customized data types. I read the examples of DEMO_GPS and used similar codes in my problem. Unfortunately, I came across the following linker errors:

1>SMTDoc.obj : error LNK2019: unresolved external symbol "public: __cdecl boost::archive::archive_exception::archive_exception(enum boost::archive::archive_exception::_exception_code,char const *,char const *)" (??0archive_exception@archive@boost@@QEAA@W4_exception_code@012@PEBD1@Z) referenced in function "protected: void __cdecl boost::archive::basic_text_oprimitive<class std::basic_ostream<char,struct std::char_traits<char> > >::save_impl<double>(double const &,struct boost::mpl::bool_<1> &)" (??$save_impl@N@?$basic_text_oprimitive@V?$basic_ostream@DU?$char_traits@D@std@@@std@@@archive@boost@@IEAAXAEBNAEAU?$bool_@$00@mpl@2@@Z)
1>SMTDoc.obj : error LNK2019: unresolved external symbol "public: virtual __cdecl boost::archive::archive_exception::~archive_exception(void)" (??1archive_exception@archive@boost@@UEAA@XZ) referenced in function "public: void __cdecl boost::archive::archive_exception::`vbase destructor'(void)" (??_Darchive_exception@archive@boost@@QEAAXXZ)
1>SMTDoc.obj : error LNK2019: unresolved external symbol "public: virtual char const * __cdecl boost::archive::archive_exception::what(void)const " (?what@archive_exception@archive@boost@@UEBAPEBDXZ) referenced in function "[thunk]:public: virtual char const * __cdecl boost::archive::archive_exception::what`vtordisp{4294967292,0}' (void)const " (?what@archive_exception@archive@boost@@$4PPPPPPPM@A@EBAPEBDXZ)
1>SMTDoc.obj : error LNK2019: unresolved external symbol "protected: void __cdecl boost::serialization::extended_type_info::key_unregister(void)const " (?key_unregister@extended_type_info@serialization@boost@@IEBAXXZ) referenced in function "public: __cdecl boost::serialization::extended_type_info_typeid<class CDPoint>::~extended_type_info_typeid<class CDPoint>(void)" (??1?$extended_type_info_typeid@VCDPoint@@@serialization@boost@@QEAA@XZ)
1>SMTDoc.obj : error LNK2019: unresolved external symbol "protected: void __cdecl boost::serialization::extended_type_info::key_register(void)const " (?key_register@extended_type_info@serialization@boost@@IEBAXXZ) referenced in function "public: __cdecl boost::serialization::extended_type_info_typeid<class CDPoint>::extended_type_info_typeid<class CDPoint>(void)" (??0?$extended_type_info_typeid@VCDPoint@@@serialization@boost@@QEAA@XZ)
1>SMTDoc.obj : error LNK2019: unresolved external symbol "protected: __cdecl boost::serialization::typeid_system::extended_type_info_typeid_0::extended_type_info_typeid_0(char const *)" (??0extended_type_info_typeid_0@typeid_system@serialization@boost@@IEAA@PEBD@Z) referenced in function "public: __cdecl boost::serialization::extended_type_info_typeid<class CDPoint>::extended_type_info_typeid<class CDPoint>(void)" (??0?$extended_type_info_typeid@VCDPoint@@@serialization@boost@@QEAA@XZ)
1>SMTDoc.obj : error LNK2019: unresolved external symbol "protected: __cdecl boost::serialization::typeid_system::extended_type_info_typeid_0::~extended_type_info_typeid_0(void)" (??1extended_type_info_typeid_0@typeid_system@serialization@boost@@IEAA@XZ) referenced in function "int `public: __cdecl boost::serialization::extended_type_info_typeid<class CDPoint>::extended_type_info_typeid<class CDPoint>(void)'::`1'::dtor$0" (?dtor$0@?0???0?$extended_type_info_typeid@VCDPoint@@@serialization@boost@@QEAA@XZ@4HA)
1>SMTDoc.obj : error LNK2019: unresolved external symbol "protected: void __cdecl boost::serialization::typeid_system::extended_type_info_typeid_0::type_register(class type_info const &)" (?type_register@extended_type_info_typeid_0@typeid_system@serialization@boost@@IEAAXAEBVtype_info@@@Z) referenced in function "public: __cdecl boost::serialization::extended_type_info_typeid<class CDPoint>::extended_type_info_typeid<class CDPoint>(void)" (??0?$extended_type_info_typeid@VCDPoint@@@serialization@boost@@QEAA@XZ)
1>SMTDoc.obj : error LNK2019: unresolved external symbol "protected: void __cdecl boost::serialization::typeid_system::extended_type_info_typeid_0::type_unregister(void)" (?type_unregister@extended_type_info_typeid_0@typeid_system@serialization@boost@@IEAAXXZ) referenced in function "public: __cdecl boost::serialization::extended_type_info_typeid<class CDPoint>::~extended_type_info_typeid<class CDPoint>(void)" (??1?$extended_type_info_typeid@VCDPoint@@@serialization@boost@@QEAA@XZ)
1>SMTDoc.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl boost::serialization::typeid_system::extended_type_info_typeid_0::is_less_than(class boost::serialization::extended_type_info const &)const " (?is_less_than@extended_type_info_typeid_0@typeid_system@serialization@boost@@UEBA_NAEBVextended_type_info@34@@Z)
1>SMTDoc.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl boost::serialization::typeid_system::extended_type_info_typeid_0::is_equal(class boost::serialization::extended_type_info const &)const " (?is_equal@extended_type_info_typeid_0@typeid_system@serialization@boost@@UEBA_NAEBVextended_type_info@34@@Z)
1>SMTDoc.obj : error LNK2019: unresolved external symbol "public: void __cdecl boost::archive::detail::basic_oarchive::save_object(void const *,class boost::archive::detail::basic_oserializer const &)" (?save_object@basic_oarchive@detail@archive@boost@@QEAAXPEBXAEBVbasic_oserializer@234@@Z) referenced in function "public: static void __cdecl boost::archive::detail::save_non_pointer_type<class boost::archive::xml_oarchive>::save_standard::invoke<class CDPoint>(class boost::archive::xml_oarchive &,class CDPoint const &)" (??$invoke@VCDPoint@@@save_standard@?$save_non_pointer_type@Vxml_oarchive@archive@boost@@@detail@archive@boost@@SAXAEAVxml_oarchive@34@AEBVCDPoint@@@Z)
1>SMTDoc.obj : error LNK2019: unresolved external symbol "protected: __cdecl boost::archive::detail::basic_oserializer::basic_oserializer(class boost::serialization::extended_type_info const &)" (??0basic_oserializer@detail@archive@boost@@IEAA@AEBVextended_type_info@serialization@3@@Z) referenced in function "public: __cdecl boost::archive::detail::oserializer<class boost::archive::xml_oarchive,class CDPoint>::oserializer<class boost::archive::xml_oarchive,class CDPoint>(void)" (??0?$oserializer@Vxml_oarchive@archive@boost@@VCDPoint@@@detail@archive@boost@@QEAA@XZ)
1>SMTDoc.obj : error LNK2019: unresolved external symbol "protected: __cdecl boost::archive::detail::basic_oserializer::~basic_oserializer(void)" (??1basic_oserializer@detail@archive@boost@@IEAA@XZ) referenced in function "public: virtual __cdecl boost::archive::detail::oserializer<class boost::archive::xml_oarchive,class CDPoint>::~oserializer<class boost::archive::xml_oarchive,class CDPoint>(void)" (??1?$oserializer@Vxml_oarchive@archive@boost@@VCDPoint@@@detail@archive@boost@@UEAA@XZ)
1>SMTDoc.obj : error LNK2019: unresolved external symbol "protected: __cdecl boost::archive::basic_text_oprimitive<class std::basic_ostream<char,struct std::char_traits<char> > >::~basic_text_oprimitive<class std::basic_ostream<char,struct std::char_traits<char> > >(void)" (??1?$basic_text_oprimitive@V?$basic_ostream@DU?$char_traits@D@std@@@std@@@archive@boost@@IEAA@XZ) referenced in function "protected: __cdecl boost::archive::xml_oarchive_impl<class boost::archive::xml_oarchive>::~xml_oarchive_impl<class boost::archive::xml_oarchive>(void)" (??1?$xml_oarchive_impl@Vxml_oarchive@archive@boost@@@archive@boost@@IEAA@XZ)
1>SMTDoc.obj : error LNK2019: unresolved external symbol "protected: void __cdecl boost::archive::basic_xml_oarchive<class boost::archive::xml_oarchive>::save_start(char const *)" (?save_start@?$basic_xml_oarchive@Vxml_oarchive@archive@boost@@@archive@boost@@IEAAXPEBD@Z) referenced in function "protected: void __cdecl boost::archive::basic_xml_oarchive<class boost::archive::xml_oarchive>::save_override<double>(struct boost::serialization::nvp<double> const &,int)" (??$save_override@N@?$basic_xml_oarchive@Vxml_oarchive@archive@boost@@@archive@boost@@IEAAXAEBU?$nvp@N@serialization@2@H@Z)
1>SMTDoc.obj : error LNK2019: unresolved external symbol "protected: void __cdecl boost::archive::basic_xml_oarchive<class boost::archive::xml_oarchive>::save_end(char const *)" (?save_end@?$basic_xml_oarchive@Vxml_oarchive@archive@boost@@@archive@boost@@IEAAXPEBD@Z) referenced in function "protected: void __cdecl boost::archive::basic_xml_oarchive<class boost::archive::xml_oarchive>::save_override<double>(struct boost::serialization::nvp<double> const &,int)" (??$save_override@N@?$basic_xml_oarchive@Vxml_oarchive@archive@boost@@@archive@boost@@IEAAXAEBU?$nvp@N@serialization@2@H@Z)
1>SMTDoc.obj : error LNK2019: unresolved external symbol "protected: void __cdecl boost::archive::basic_xml_oarchive<class boost::archive::xml_oarchive>::end_preamble(void)" (?end_preamble@?$basic_xml_oarchive@Vxml_oarchive@archive@boost@@@archive@boost@@IEAAXXZ) referenced in function "public: static void __cdecl boost::archive::save_access::save_primitive<class boost::archive::xml_oarchive,double>(class boost::archive::xml_oarchive &,double const &)" (??$save_primitive@Vxml_oarchive@archive@boost@@N@save_access@archive@boost@@SAXAEAVxml_oarchive@12@AEBN@Z)
1>SMTDoc.obj : error LNK2019: unresolved external symbol "protected: void __cdecl boost::archive::basic_xml_oarchive<class boost::archive::xml_oarchive>::save_override(class boost::archive::object_id_type const &,int)" (?save_override@?$basic_xml_oarchive@Vxml_oarchive@archive@boost@@@archive@boost@@IEAAXAEBVobject_id_type@23@H@Z) referenced in function "public: class boost::archive::xml_oarchive & __cdecl boost::archive::detail::interface_oarchive<class boost::archive::xml_oarchive>::operator<<<class boost::archive::object_id_type const >(class boost::archive::object_id_type const &)" (??$?6$$CBVobject_id_type@archive@boost@@@?$interface_oarchive@Vxml_oarchive@archive@boost@@@detail@archive@boost@@QEAAAEAVxml_oarchive@23@AEBVobject_id_type@23@@Z)
1>SMTDoc.obj : error LNK2019: unresolved external symbol "protected: void __cdecl boost::archive::basic_xml_oarchive<class boost::archive::xml_oarchive>::save_override(class boost::archive::object_reference_type const &,int)" (?save_override@?$basic_xml_oarchive@Vxml_oarchive@archive@boost@@@archive@boost@@IEAAXAEBVobject_reference_type@23@H@Z) referenced in function "public: class boost::archive::xml_oarchive & __cdecl boost::archive::detail::interface_oarchive<class boost::archive::xml_oarchive>::operator<<<class boost::archive::object_reference_type const >(class boost::archive::object_reference_type const &)" (??$?6$$CBVobject_reference_type@archive@boost@@@?$interface_oarchive@Vxml_oarchive@archive@boost@@@detail@archive@boost@@QEAAAEAVxml_oarchive@23@AEBVobject_reference_type@23@@Z)
1>SMTDoc.obj : error LNK2019: unresolved external symbol "protected: void __cdecl boost::archive::basic_xml_oarchive<class boost::archive::xml_oarchive>::save_override(class boost::archive::version_type const &,int)" (?save_override@?$basic_xml_oarchive@Vxml_oarchive@archive@boost@@@archive@boost@@IEAAXAEBVversion_type@23@H@Z) referenced in function "public: class boost::archive::xml_oarchive & __cdecl boost::archive::detail::interface_oarchive<class boost::archive::xml_oarchive>::operator<<<class boost::archive::version_type const >(class boost::archive::version_type const &)" (??$?6$$CBVversion_type@archive@boost@@@?$interface_oarchive@Vxml_oarchive@archive@boost@@@detail@archive@boost@@QEAAAEAVxml_oarchive@23@AEBVversion_type@23@@Z)
1>SMTDoc.obj : error LNK2019: unresolved external symbol "protected: void __cdecl boost::archive::basic_xml_oarchive<class boost::archive::xml_oarchive>::save_override(class boost::archive::class_id_type const &,int)" (?save_override@?$basic_xml_oarchive@Vxml_oarchive@archive@boost@@@archive@boost@@IEAAXAEBVclass_id_type@23@H@Z) referenced in function "public: class boost::archive::xml_oarchive & __cdecl boost::archive::detail::interface_oarchive<class boost::archive::xml_oarchive>::operator<<<class boost::archive::class_id_type const >(class boost::archive::class_id_type const &)" (??$?6$$CBVclass_id_type@archive@boost@@@?$interface_oarchive@Vxml_oarchive@archive@boost@@@detail@archive@boost@@QEAAAEAVxml_oarchive@23@AEBVclass_id_type@23@@Z)
1>SMTDoc.obj : error LNK2019: unresolved external symbol "protected: void __cdecl boost::archive::basic_xml_oarchive<class boost::archive::xml_oarchive>::save_override(class boost::archive::class_id_optional_type const &,int)" (?save_override@?$basic_xml_oarchive@Vxml_oarchive@archive@boost@@@archive@boost@@IEAAXAEBVclass_id_optional_type@23@H@Z) referenced in function "public: class boost::archive::xml_oarchive & __cdecl boost::archive::detail::interface_oarchive<class boost::archive::xml_oarchive>::operator<<<class boost::archive::class_id_optional_type const >(class boost::archive::class_id_optional_type const &)" (??$?6$$CBVclass_id_optional_type@archive@boost@@@?$interface_oarchive@Vxml_oarchive@archive@boost@@@detail@archive@boost@@QEAAAEAVxml_oarchive@23@AEBVclass_id_optional_type@23@@Z)
1>SMTDoc.obj : error LNK2019: unresolved external symbol "protected: void __cdecl boost::archive::basic_xml_oarchive<class boost::archive::xml_oarchive>::save_override(class boost::archive::class_id_reference_type const &,int)" (?save_override@?$basic_xml_oarchive@Vxml_oarchive@archive@boost@@@archive@boost@@IEAAXAEBVclass_id_reference_type@23@H@Z) referenced in function "public: class boost::archive::xml_oarchive & __cdecl boost::archive::detail::interface_oarchive<class boost::archive::xml_oarchive>::operator<<<class boost::archive::class_id_reference_type const >(class boost::archive::class_id_reference_type const &)" (??$?6$$CBVclass_id_reference_type@archive@boost@@@?$interface_oarchive@Vxml_oarchive@archive@boost@@@detail@archive@boost@@QEAAAEAVxml_oarchive@23@AEBVclass_id_reference_type@23@@Z)
1>SMTDoc.obj : error LNK2019: unresolved external symbol "protected: void __cdecl boost::archive::basic_xml_oarchive<class boost::archive::xml_oarchive>::save_override(struct boost::archive::class_name_type const &,int)" (?save_override@?$basic_xml_oarchive@Vxml_oarchive@archive@boost@@@archive@boost@@IEAAXAEBUclass_name_type@23@H@Z) referenced in function "public: class boost::archive::xml_oarchive & __cdecl boost::archive::detail::interface_oarchive<class boost::archive::xml_oarchive>::operator<<<struct boost::archive::class_name_type const >(struct boost::archive::class_name_type const &)" (??$?6$$CBUclass_name_type@archive@boost@@@?$interface_oarchive@Vxml_oarchive@archive@boost@@@detail@archive@boost@@QEAAAEAVxml_oarchive@23@AEBUclass_name_type@23@@Z)
1>SMTDoc.obj : error LNK2019: unresolved external symbol "protected: void __cdecl boost::archive::basic_xml_oarchive<class boost::archive::xml_oarchive>::save_override(struct boost::archive::tracking_type const &,int)" (?save_override@?$basic_xml_oarchive@Vxml_oarchive@archive@boost@@@archive@boost@@IEAAXAEBUtracking_type@23@H@Z) referenced in function "public: class boost::archive::xml_oarchive & __cdecl boost::archive::detail::interface_oarchive<class boost::archive::xml_oarchive>::operator<<<struct boost::archive::tracking_type const >(struct boost::archive::tracking_type const &)" (??$?6$$CBUtracking_type@archive@boost@@@?$interface_oarchive@Vxml_oarchive@archive@boost@@@detail@archive@boost@@QEAAAEAVxml_oarchive@23@AEBUtracking_type@23@@Z)
1>SMTDoc.obj : error LNK2019: unresolved external symbol "protected: __cdecl boost::archive::basic_xml_oarchive<class boost::archive::xml_oarchive>::~basic_xml_oarchive<class boost::archive::xml_oarchive>(void)" (??1?$basic_xml_oarchive@Vxml_oarchive@archive@boost@@@archive@boost@@IEAA@XZ) referenced in function "protected: __cdecl boost::archive::xml_oarchive_impl<class boost::archive::xml_oarchive>::~xml_oarchive_impl<class boost::archive::xml_oarchive>(void)" (??1?$xml_oarchive_impl@Vxml_oarchive@archive@boost@@@archive@boost@@IEAA@XZ)
1>SMTDoc.obj : error LNK2019: unresolved external symbol "protected: __cdecl boost::archive::xml_oarchive_impl<class boost::archive::xml_oarchive>::xml_oarchive_impl<class boost::archive::xml_oarchive>(class std::basic_ostream<char,struct std::char_traits<char> > &,unsigned int)" (??0?$xml_oarchive_impl@Vxml_oarchive@archive@boost@@@archive@boost@@IEAA@AEAV?$basic_ostream@DU?$char_traits@D@std@@@std@@I@Z) referenced in function "public: __cdecl boost::archive::xml_oarchive::xml_oarchive(class std::basic_ostream<char,struct std::char_traits<char> > &,unsigned int)" (??0xml_oarchive@archive@boost@@QEAA@AEAV?$basic_ostream@DU?$char_traits@D@std@@@std@@I@Z)

Some answers say that this kind of error is due to the mismatching of the boost library and the project, 32bit Vs 64bit. However, I have also tried the DEMO_GPS codes on x64 platform while there is no linker error.

Here are my codes of saving the document:

BOOL CSMTDoc::OnSaveDocument(LPCTSTR lpszPathName)
{
    // TODO: Add your specialized code here and/or call the base class

    if (!CDocument::OnSaveDocument(lpszPathName))
    return FALSE;

    char* pBuffer;

    USES_CONVERSION;
    pBuffer = T2A(lpszPathName);

    std::ofstream ofs(pBuffer);
    assert(ofs.good());
    boost::archive::xml_oarchive oa(ofs);
    oa << BOOST_SERIALIZATION_NVP(minPoint);

    return CDocument::OnSaveDocument(lpszPathName);
}

And also what have been included particularly for boost serialization:

#include <iomanip>
#include <iostream>
#include <fstream>  
#include <cstdio> 
#include <boost/config.hpp>
#if defined(BOOST_NO_STDC_NAMESPACE)
namespace std{
    using ::remove;
}
#endif
#include <boost/archive/xml_iarchive.hpp>
#include <boost/archive/xml_oarchive.hpp>

I also tried a simple version of boost serialization, which is just like the simplest one in the tutorial. However, it seems like everytime I uncomment this line:

boost::archive::text_oarchive oa(ofs);

in OnSaveDocument(LPCTSTR lpszPathName), there will be some linker errors:

1>SMTDoc.obj : error LNK2019: unresolved external symbol "public: __cdecl boost::archive::archive_exception::archive_exception(enum boost::archive::archive_exception::_exception_code,char const *,char const *)" (??0archive_exception@archive@boost@@QEAA@W4_exception_code@012@PEBD1@Z) referenced in function "protected: void __cdecl boost::archive::basic_text_oprimitive<class std::basic_ostream<char,struct std::char_traits<char> > >::save_impl<unsigned int>(unsigned int const &,struct boost::mpl::bool_<0> &)" (??$save_impl@I@?$basic_text_oprimitive@V?$basic_ostream@DU?$char_traits@D@std@@@std@@@archive@boost@@IEAAXAEBIAEAU?$bool_@$0A@@mpl@2@@Z)
1>SMTDoc.obj : error LNK2019: unresolved external symbol "public: virtual __cdecl boost::archive::archive_exception::~archive_exception(void)" (??1archive_exception@archive@boost@@UEAA@XZ) referenced in function "public: void __cdecl boost::archive::archive_exception::`vbase destructor'(void)" (??_Darchive_exception@archive@boost@@QEAAXXZ)
1>SMTDoc.obj : error LNK2019: unresolved external symbol "public: virtual char const * __cdecl boost::archive::archive_exception::what(void)const " (?what@archive_exception@archive@boost@@UEBAPEBDXZ) referenced in function "[thunk]:public: virtual char const * __cdecl boost::archive::archive_exception::what`vtordisp{4294967292,0}' (void)const " (?what@archive_exception@archive@boost@@$4PPPPPPPM@A@EBAPEBDXZ)
1>SMTDoc.obj : error LNK2019: unresolved external symbol "protected: __cdecl boost::archive::detail::basic_oarchive::~basic_oarchive(void)" (??1basic_oarchive@detail@archive@boost@@IEAA@XZ) referenced in function "public: __cdecl boost::archive::detail::common_oarchive<class boost::archive::text_oarchive>::~common_oarchive<class boost::archive::text_oarchive>(void)" (??1?$common_oarchive@Vtext_oarchive@archive@boost@@@detail@archive@boost@@QEAA@XZ)
1>SMTDoc.obj : error LNK2019: unresolved external symbol "public: void __cdecl boost::archive::detail::basic_oarchive::end_preamble(void)" (?end_preamble@basic_oarchive@detail@archive@boost@@QEAAXXZ) referenced in function "public: static void __cdecl boost::archive::save_access::save_primitive<class boost::archive::text_oarchive,struct boost::archive::tracking_type>(class boost::archive::text_oarchive &,struct boost::archive::tracking_type const &)" (??$save_primitive@Vtext_oarchive@archive@boost@@Utracking_type@23@@save_access@archive@boost@@SAXAEAVtext_oarchive@12@AEBUtracking_type@12@@Z)
1>SMTDoc.obj : error LNK2019: unresolved external symbol "protected: __cdecl boost::archive::basic_text_oprimitive<class std::basic_ostream<char,struct std::char_traits<char> > >::~basic_text_oprimitive<class std::basic_ostream<char,struct std::char_traits<char> > >(void)" (??1?$basic_text_oprimitive@V?$basic_ostream@DU?$char_traits@D@std@@@std@@@archive@boost@@IEAA@XZ) referenced in function "protected: __cdecl boost::archive::text_oarchive_impl<class boost::archive::text_oarchive>::~text_oarchive_impl<class boost::archive::text_oarchive>(void)" (??1?$text_oarchive_impl@Vtext_oarchive@archive@boost@@@archive@boost@@IEAA@XZ)
1>SMTDoc.obj : error LNK2019: unresolved external symbol "protected: void __cdecl boost::archive::basic_text_oarchive<class boost::archive::text_oarchive>::newtoken(void)" (?newtoken@?$basic_text_oarchive@Vtext_oarchive@archive@boost@@@archive@boost@@IEAAXXZ) referenced in function "protected: void __cdecl boost::archive::text_oarchive_impl<class boost::archive::text_oarchive>::save<unsigned int>(unsigned int const &)" (??$save@I@?$text_oarchive_impl@Vtext_oarchive@archive@boost@@@archive@boost@@IEAAXAEBI@Z)
1>SMTDoc.obj : error LNK2019: unresolved external symbol "protected: void __cdecl boost::archive::text_oarchive_impl<class boost::archive::text_oarchive>::save(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?save@?$text_oarchive_impl@Vtext_oarchive@archive@boost@@@archive@boost@@IEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) referenced in function "public: static void __cdecl boost::archive::save_access::save_primitive<class boost::archive::text_oarchive,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >(class boost::archive::text_oarchive &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??$save_primitive@Vtext_oarchive@archive@boost@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@save_access@archive@boost@@SAXAEAVtext_oarchive@12@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
1>SMTDoc.obj : error LNK2019: unresolved external symbol "protected: __cdecl boost::archive::text_oarchive_impl<class boost::archive::text_oarchive>::text_oarchive_impl<class boost::archive::text_oarchive>(class std::basic_ostream<char,struct std::char_traits<char> > &,unsigned int)" (??0?$text_oarchive_impl@Vtext_oarchive@archive@boost@@@archive@boost@@IEAA@AEAV?$basic_ostream@DU?$char_traits@D@std@@@std@@I@Z) referenced in function "public: __cdecl boost::archive::text_oarchive::text_oarchive(class std::basic_ostream<char,struct std::char_traits<char> > &,unsigned int)" (??0text_oarchive@archive@boost@@QEAA@AEAV?$basic_ostream@DU?$char_traits@D@std@@@std@@I@Z)
Vincent8Hz
  • 31
  • 1
  • 5
  • So, if you link it as 64 bit it works, but if you link the same library to a 32 bit project it doesn't...? – danielschemmel Jan 28 '15 at 17:35
  • Sounds like you're using the wrong calling convention. Since x64 only has one, it will compile fine even if the calling convention isn't specified. For x86 you have to be explicit. Windows predominantly uses `__stdcall`, not `__cdecl`. – IInspectable Jan 29 '15 at 23:28

1 Answers1

6

I run into similar problem linking on 64 bit computer. Based on this answer. I rebuild boost libraries and it solved the problem. Try

 b2 --toolset=msvc-12.0 --build-type=complete architecture=x86 address-model=64 stage
Community
  • 1
  • 1
LRaiz
  • 667
  • 7
  • 18
  • I rewrote the codes a few weeks ago to use MFC serialization to serialize vectors in my program and it now looks fine. Still, thank you. – Vincent8Hz Feb 25 '15 at 03:12