3

我在 VS2010 - 64 位中使用以下代码,并且我的 boost 库也是 64 位的,尽管我在链接器设置中添加了 Boost 库并且还包含了其他标头,但我一直收到这些链接器错误。关于如何解决此问题的任何建议?

#include <boost/archive/text_oarchive.hpp> 
#include <boost/archive/text_iarchive.hpp> 
#include <iostream> 
#include <sstream> 
std::stringstream ss; 

//--------------------------------------
class person 
{ 
public: 
    person() 
    { 
    } 

    person(int age) 
        : age_(age) 
    { 
    } 

    int age() const 
    { 
        return age_; 
    } 

private: 

    friend class boost::serialization::access; 

    template <typename Archive> 
    void serialize(Archive &ar, const unsigned int version) 
    { 
        ar & age_; 
    } 

    int age_; 
}; 
//---------------------------------------
int main(int argc, char** argv) 
{

    boost::archive::text_oarchive oa(ss); 
    person p(31); 
    oa << p;
}

这些是链接器错误

Error   12  error LNK2001: unresolved external symbol "private: virtual char const * __cdecl boost::serialization::typeid_system::extended_type_info_typeid_0::get_debug_info(void)const " (?get_debug_info@extended_type_info_typeid_0@typeid_system@serialization@boost@@EEBAPEBDXZ)  D:\Tproj-0.18\TestProject\QTR\QTR\main.obj  QTR
Error   22  error LNK2001: unresolved external symbol "public: __cdecl boost::archive::archive_exception::archive_exception(class boost::archive::archive_exception const &)" (??0archive_exception@archive@boost@@QEAA@AEBV012@@Z) D:\Tproj-0.18\TestProject\QTR\QTR\main.obj  QTR
Error   11  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) D:\Tproj-0.18\TestProject\QTR\QTR\main.obj  QTR
Error   10  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) D:\Tproj-0.18\TestProject\QTR\QTR\main.obj  QTR
Error   21  error LNK2001: unresolved external symbol "public: void __cdecl boost::archive::archive_exception::`vbase destructor'(void)" (??_Darchive_exception@archive@boost@@QEAAXXZ) D:\Tproj-0.18\TestProject\QTR\QTR\main.obj  QTR
Error   2   error LNK2019: unresolved external symbol "__declspec(dllimport) 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)" (__imp_??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)   D:\Tproj-0.18\TestProject\QTR\QTR\main.obj  QTR
Error   3   error LNK2019: unresolved external symbol "__declspec(dllimport) protected: __cdecl boost::archive::detail::basic_oarchive::~basic_oarchive(void)" (__imp_??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)   D:\Tproj-0.18\TestProject\QTR\QTR\main.obj  QTR
Error   9   error LNK2019: unresolved external symbol "__declspec(dllimport) protected: __cdecl boost::archive::detail::basic_oserializer::~basic_oserializer(void)" (__imp_??1basic_oserializer@detail@archive@boost@@IEAA@XZ) referenced in function "public: virtual __cdecl boost::archive::detail::oserializer<class boost::archive::text_oarchive,class person>::~oserializer<class boost::archive::text_oarchive,class person>(void)" (??1?$oserializer@Vtext_oarchive@archive@boost@@Vperson@@@detail@archive@boost@@UEAA@XZ)   D:\Tproj-0.18\TestProject\QTR\QTR\main.obj  QTR
Error   8   error LNK2019: unresolved external symbol "__declspec(dllimport) protected: __cdecl boost::archive::detail::basic_oserializer::basic_oserializer(class boost::serialization::extended_type_info const &)" (__imp_??0basic_oserializer@detail@archive@boost@@IEAA@AEBVextended_type_info@serialization@3@@Z) referenced in function "public: __cdecl boost::archive::detail::oserializer<class boost::archive::text_oarchive,class person>::oserializer<class boost::archive::text_oarchive,class person>(void)" (??0?$oserializer@Vtext_oarchive@archive@boost@@Vperson@@@detail@archive@boost@@QEAA@XZ)    D:\Tproj-0.18\TestProject\QTR\QTR\main.obj  QTR
Error   1   error LNK2019: unresolved external symbol "__declspec(dllimport) 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)" (__imp_??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) D:\Tproj-0.18\TestProject\QTR\QTR\main.obj  QTR
Error   13  error LNK2019: unresolved external symbol "__declspec(dllimport) protected: __cdecl boost::serialization::typeid_system::extended_type_info_typeid_0::~extended_type_info_typeid_0(void)" (__imp_??1extended_type_info_typeid_0@typeid_system@serialization@boost@@IEAA@XZ) referenced in function "int `public: __cdecl boost::serialization::extended_type_info_typeid<class person>::extended_type_info_typeid<class person>(void)'::`1'::dtor$0" (?dtor$0@?0???0?$extended_type_info_typeid@Vperson@@@serialization@boost@@QEAA@XZ@4HA) D:\Tproj-0.18\TestProject\QTR\QTR\main.obj  QTR
Error   16  error LNK2019: unresolved external symbol "__declspec(dllimport) protected: __cdecl boost::serialization::typeid_system::extended_type_info_typeid_0::extended_type_info_typeid_0(char const *)" (__imp_??0extended_type_info_typeid_0@typeid_system@serialization@boost@@IEAA@PEBD@Z) referenced in function "public: __cdecl boost::serialization::extended_type_info_typeid<class person>::extended_type_info_typeid<class person>(void)" (??0?$extended_type_info_typeid@Vperson@@@serialization@boost@@QEAA@XZ)    D:\Tproj-0.18\TestProject\QTR\QTR\main.obj  QTR
Error   6   error LNK2019: unresolved external symbol "__declspec(dllimport) protected: void __cdecl boost::archive::basic_text_oarchive<class boost::archive::text_oarchive>::newtoken(void)" (__imp_?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<class boost::archive::object_id_type>(class boost::archive::object_id_type const &)" (??$save@Vobject_id_type@archive@boost@@@?$text_oarchive_impl@Vtext_oarchive@archive@boost@@@archive@boost@@IEAAXAEBVobject_id_type@12@@Z)  D:\Tproj-0.18\TestProject\QTR\QTR\main.obj  QTR
Error   19  error LNK2019: unresolved external symbol "__declspec(dllimport) 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 &)" (__imp_?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)    D:\Tproj-0.18\TestProject\QTR\QTR\main.obj  QTR
Error   14  error LNK2019: unresolved external symbol "__declspec(dllimport) protected: void __cdecl boost::serialization::extended_type_info::key_register(void)const " (__imp_?key_register@extended_type_info@serialization@boost@@IEBAXXZ) referenced in function "public: __cdecl boost::serialization::extended_type_info_typeid<class person>::extended_type_info_typeid<class person>(void)" (??0?$extended_type_info_typeid@Vperson@@@serialization@boost@@QEAA@XZ)    D:\Tproj-0.18\TestProject\QTR\QTR\main.obj  QTR
Error   24  error LNK2019: unresolved external symbol "__declspec(dllimport) protected: void __cdecl boost::serialization::extended_type_info::key_unregister(void)const " (__imp_?key_unregister@extended_type_info@serialization@boost@@IEBAXXZ) referenced in function "public: __cdecl boost::serialization::extended_type_info_typeid<class person>::~extended_type_info_typeid<class person>(void)" (??1?$extended_type_info_typeid@Vperson@@@serialization@boost@@QEAA@XZ)   D:\Tproj-0.18\TestProject\QTR\QTR\main.obj  QTR
Error   15  error LNK2019: unresolved external symbol "__declspec(dllimport) protected: void __cdecl boost::serialization::typeid_system::extended_type_info_typeid_0::type_register(class type_info const &)" (__imp_?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 person>::extended_type_info_typeid<class person>(void)" (??0?$extended_type_info_typeid@Vperson@@@serialization@boost@@QEAA@XZ)   D:\Tproj-0.18\TestProject\QTR\QTR\main.obj  QTR
Error   23  error LNK2019: unresolved external symbol "__declspec(dllimport) protected: void __cdecl boost::serialization::typeid_system::extended_type_info_typeid_0::type_unregister(void)" (__imp_?type_unregister@extended_type_info_typeid_0@typeid_system@serialization@boost@@IEAAXXZ) referenced in function "public: __cdecl boost::serialization::extended_type_info_typeid<class person>::~extended_type_info_typeid<class person>(void)" (??1?$extended_type_info_typeid@Vperson@@@serialization@boost@@QEAA@XZ)    D:\Tproj-0.18\TestProject\QTR\QTR\main.obj  QTR
Error   20  error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl boost::archive::archive_exception::archive_exception(class boost::archive::archive_exception const &)" (__imp_??0archive_exception@archive@boost@@QEAA@AEBV012@@Z) referenced in function "void __cdecl boost::serialization::throw_exception<class boost::archive::archive_exception>(class boost::archive::archive_exception const &)" (??$throw_exception@Varchive_exception@archive@boost@@@serialization@boost@@YAXAEBVarchive_exception@archive@1@@Z)    D:\Tproj-0.18\TestProject\QTR\QTR\main.obj  QTR
Error   18  error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl boost::archive::archive_exception::archive_exception(enum boost::archive::archive_exception::_exception_code,char const *,char const *)" (__imp_??0archive_exception@archive@boost@@QEAA@W4_exception_code@012@PEBD1@Z) referenced in function "protected: void __cdecl boost::archive::basic_text_oprimitive<classstd::basic_ostream<char,struct std::char_traits<char> > >::save<class boost::archive::object_id_type>(class boost::archive::object_id_type const &)" (??$save@Vobject_id_type@archive@boost@@@?$basic_text_oprimitive@V?$basic_ostream@DU?$char_traits@D@std@@@std@@@archive@boost@@IEAAXAEBVobject_id_type@12@@Z)  D:\Tproj-0.18\TestProject\QTR\QTR\main.obj  QTR
Error   7   error LNK2019: unresolved external symbol "__declspec(dllimport) public: bool __cdecl boost::archive::detail::basic_oserializer::serialized_as_pointer(void)const " (__imp_?serialized_as_pointer@basic_oserializer@detail@archive@boost@@QEBA_NXZ) referenced in function "public: virtual bool __cdecl boost::archive::detail::oserializer<class boost::archive::text_oarchive,class person>::tracking(unsigned int)const " (?tracking@?$oserializer@Vtext_oarchive@archive@boost@@Vperson@@@detail@archive@boost@@UEBA_NI@Z) D:\Tproj-0.18\TestProject\QTR\QTR\main.obj  QTR
Error   17  error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __cdecl boost::archive::archive_exception::`vbase destructor'(void)" (__imp_??_Darchive_exception@archive@boost@@QEAAXXZ) referenced in function "protected: void __cdecl boost::archive::basic_text_oprimitive<class std::basic_ostream<char,struct std::char_traits<char> > >::save<class boost::archive::object_id_type>(class boost::archive::object_id_type const &)" (??$save@Vobject_id_type@archive@boost@@@?$basic_text_oprimitive@V?$basic_ostream@DU?$char_traits@D@std@@@std@@@archive@boost@@IEAAXAEBVobject_id_type@12@@Z)  D:\Tproj-0.18\TestProject\QTR\QTR\main.obj  QTR
Error   4   error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __cdecl boost::archive::detail::basic_oarchive::end_preamble(void)" (__imp_?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,class boost::archive::object_id_type>(classboost::archive::text_oarchive &,class boost::archive::object_id_type const &)" (??$save_primitive@Vtext_oarchive@archive@boost@@Vobject_id_type@23@@save_access@archive@boost@@SAXAEAVtext_oarchive@12@AEBVobject_id_type@12@@Z)    D:\Tproj-0.18\TestProject\QTR\QTR\main.obj  QTR
Error   5   error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __cdecl boost::archive::detail::basic_oarchive::save_object(void const *,class boost::archive::detail::basic_oserializer const &)" (__imp_?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::text_oarchive>::save_standard::invoke<class person>(class boost::archive::text_oarchive &,class person const &)" (??$invoke@Vperson@@@save_standard@?$save_non_pointer_type@Vtext_oarchive@archive@boost@@@detail@archive@boost@@SAXAEAVtext_oarchive@34@AEBVperson@@@Z)   D:\Tproj-0.18\TestProject\QTR\QTR\main.obj  QTR
4

1 回答 1

1

也许您在使用 boost 自动链接链接的库和您明确指定的库之间存在冲突。

定义值 BOOST_ALL_NO_LIB=1 并明确指定所需的库。

另一种选择是使用 boost 自动链接:从链接器选​​项中删除所有 boost 库并查看任何丢失库的输出(定义 BOOST_LIB_DIAGNOSTIC=1 以获得更详细的输出)

于 2012-10-17T15:30:15.873 回答