Robert Ramey wrote:
See the following changes help.
Robert Ramey
#define BOOST_ARCHIVE_SOURCE
#include
#include
namespace rs
{
InputArchive::InputArchive( std::istream& is )
: boost::archive::xml_iarchive_impl<InputArchive>( is, 0 )
, m_repository( 0 )
{
}
InputArchive::InputArchive( std::istream& is, Repository&
repository ) :
boost::archive::xml_iarchive_impl<InputArchive>( is, 0 ) ,
m_repository( &repository ) {
}
Repository* InputArchive::GetRepository() const
{
return m_repository;
}
} // end namespace rs
BOOST_SERIALIZATION_REGISTER_ARCHIVE( rs::InputArchive )
#include
#include
namespace boost
{
namespace archive
{
template class basic_xml_iarchivers::InputArchive;
template class xml_iarchive_implrs::InputArchive;
template class detail::archive_pointer_iserializerrs::InputArchive ;
} // end namespace archive
} // end namespace boost
#define BOOST_ARCHIVE_CUSTOM_IARCHIVE_TYPES rs::InputArchive
Thanks for the quick reply. Your suggestions got rid of some linker
errors, but there's still a few left. I've attached the updated cpp
containing your changes as well as my current linker output.
Thanks again!
Kenny Riddile
#define BOOST_ARCHIVE_SOURCE
#include
#include
namespace rs
{
InputArchive::InputArchive( std::istream& is )
: boost::archive::xml_iarchive_impl<InputArchive>( is, 0 )
, m_repository( 0 )
{
}
InputArchive::InputArchive( std::istream& is, Repository& repository )
: boost::archive::xml_iarchive_impl<InputArchive>( is, 0 )
, m_repository( &repository )
{
}
Repository* InputArchive::GetRepository() const
{
return m_repository;
}
} // end namespace rs
BOOST_SERIALIZATION_REGISTER_ARCHIVE( rs::InputArchive )
#include
#include
#include
namespace boost
{
namespace archive
{
template class basic_xml_iarchivers::InputArchive;
template class xml_iarchive_implrs::InputArchive;
template class detail::archive_pointer_iserializerrs::InputArchive;
} // end namespace archive
} // end namespace boost
#define BOOST_ARCHIVE_CUSTOM_IARCHIVE_TYPES rs::InputArchive
1>------ Build started: Project: repository_test_repository, Configuration: Debug Win32 ------
1>Linking...
1>repository.lib(Archive.obj) : error LNK2005: "public: bool __thiscall boost::archive::detail::basic_iserializer::serialized_as_pointer(void)const " (?serialized_as_pointer@basic_iserializer@detail@archive@boost@@QBE_NXZ) already defined in boost_serialization-mt-gd.lib(boost_serialization-mt-gd.dll)
1>repository.lib(Archive.obj) : error LNK2005: "public: bool __thiscall boost::archive::detail::basic_oserializer::serialized_as_pointer(void)const " (?serialized_as_pointer@basic_oserializer@detail@archive@boost@@QBE_NXZ) already defined in boost_serialization-mt-gd.lib(boost_serialization-mt-gd.dll)
1> Creating library C:\Documents and Settings\Administrator\My Documents\Development\development\build\bin\Debug\repository_test_repository.lib and object C:\Documents and Settings\Administrator\My Documents\Development\development\build\bin\Debug\repository_test_repository.exp
1>repository.obj : warning LNK4217: locally defined symbol ?load_end@?$basic_xml_iarchive@VInputArchive@rs@@@archive@boost@@IAEXPBD@Z (protected: void __thiscall boost::archive::basic_xml_iarchive<class rs::InputArchive>::load_end(char const *)) imported in function "protected: void __thiscall boost::archive::basic_xml_iarchive<class rs::InputArchive>::load_override<class TestResource>(struct boost::serialization::nvp<class TestResource> const &,int)" (??$load_override@VTestResource@@@?$basic_xml_iarchive@VInputArchive@rs@@@archive@boost@@IAEXABU?$nvp@VTestResource@@@serialization@2@H@Z)
1>repository.obj : warning LNK4217: locally defined symbol ?load_start@?$basic_xml_iarchive@VInputArchive@rs@@@archive@boost@@IAEXPBD@Z (protected: void __thiscall boost::archive::basic_xml_iarchive<class rs::InputArchive>::load_start(char const *)) imported in function "protected: void __thiscall boost::archive::basic_xml_iarchive<class rs::InputArchive>::load_override<class TestResource>(struct boost::serialization::nvp<class TestResource> const &,int)" (??$load_override@VTestResource@@@?$basic_xml_iarchive@VInputArchive@rs@@@archive@boost@@IAEXABU?$nvp@VTestResource@@@serialization@2@H@Z)
1>repository.obj : warning LNK4217: locally defined symbol ??1?$xml_iarchive_impl@VInputArchive@rs@@@archive@boost@@IAE@XZ (protected: __thiscall boost::archive::xml_iarchive_impl<class rs::InputArchive>::~xml_iarchive_impl<class rs::InputArchive>(void)) imported in function "public: __thiscall rs::InputArchive::~InputArchive(void)" (??1InputArchive@rs@@QAE@XZ)
1>repository.lib(ArchiveWrapper.obj) : warning LNK4049: locally defined symbol ??1?$xml_iarchive_impl@VInputArchive@rs@@@archive@boost@@IAE@XZ (protected: __thiscall boost::archive::xml_iarchive_impl<class rs::InputArchive>::~xml_iarchive_impl<class rs::InputArchive>(void)) imported
1>repository.obj : warning LNK4217: locally defined symbol ?load@?$xml_iarchive_impl@VInputArchive@rs@@@archive@boost@@IAEXAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z (protected: void __thiscall boost::archive::xml_iarchive_impl<class rs::InputArchive>::load(class std::basic_string &)) imported in function "public: void __thiscall rs::InputArchive::load >(class std::basic_string &)" (??$load@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@InputArchive@rs@@QAEXAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
1>repository.lib(Archive.obj) : error LNK2019: unresolved external symbol "public: __thiscall boost::archive::basic_xml_grammar<char>::basic_xml_grammar<char>(void)" (??0?$basic_xml_grammar@D@archive@boost@@QAE@XZ) referenced in function "protected: __thiscall boost::archive::xml_iarchive_impl<class boost::archive::naked_xml_iarchive>::xml_iarchive_impl<class boost::archive::naked_xml_iarchive>(class std::basic_istream &,unsigned int)" (??0?$xml_iarchive_impl@Vnaked_xml_iarchive@archive@boost@@@archive@boost@@IAE@AAV?$basic_istream@DU?$char_traits@D@std@@@std@@I@Z)
1>repository.lib(Archive.obj) : error LNK2019: unresolved external symbol "public: void __thiscall boost::archive::basic_xml_grammar<char>::windup(class std::basic_istream &)" (?windup@?$basic_xml_grammar@D@archive@boost@@QAEXAAV?$basic_istream@DU?$char_traits@D@std@@@std@@@Z) referenced in function "protected: __thiscall boost::archive::xml_iarchive_impl<class boost::archive::naked_xml_iarchive>::~xml_iarchive_impl<class boost::archive::naked_xml_iarchive>(void)" (??1?$xml_iarchive_impl@Vnaked_xml_iarchive@archive@boost@@@archive@boost@@IAE@XZ)
1>repository.lib(Archive.obj) : error LNK2019: unresolved external symbol "public: bool __thiscall boost::archive::basic_xml_grammar<char>::parse_start_tag(class std::basic_istream &)" (?parse_start_tag@?$basic_xml_grammar@D@archive@boost@@QAE_NAAV?$basic_istream@DU?$char_traits@D@std@@@std@@@Z) referenced in function "protected: void __thiscall boost::archive::basic_xml_iarchive<class rs::InputArchive>::load_start(char const *)" (?load_start@?$basic_xml_iarchive@VInputArchive@rs@@@archive@boost@@IAEXPBD@Z)
1>repository.lib(Archive.obj) : error LNK2019: unresolved external symbol "public: bool __thiscall boost::archive::basic_xml_grammar<char>::parse_end_tag(class std::basic_istream &)const " (?parse_end_tag@?$basic_xml_grammar@D@archive@boost@@QBE_NAAV?$basic_istream@DU?$char_traits@D@std@@@std@@@Z) referenced in function "protected: void __thiscall boost::archive::basic_xml_iarchive<class rs::InputArchive>::load_end(char const *)" (?load_end@?$basic_xml_iarchive@VInputArchive@rs@@@archive@boost@@IAEXPBD@Z)
1>repository.lib(Archive.obj) : error LNK2019: unresolved external symbol "public: bool __thiscall boost::archive::basic_xml_grammar<char>::parse_string(class std::basic_istream &,class std::basic_string &)" (?parse_string@?$basic_xml_grammar@D@archive@boost@@QAE_NAAV?$basic_istream@DU?$char_traits@D@std@@@std@@AAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@5@@Z) referenced in function "protected: void __thiscall boost::archive::xml_iarchive_impl<class rs::InputArchive>::load(class std::basic_string,class std::allocator > &)" (?load@?$xml_iarchive_impl@VInputArchive@rs@@@archive@boost@@IAEXAAV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z)
1>repository.lib(Archive.obj) : error LNK2019: unresolved external symbol "public: void __thiscall boost::archive::basic_xml_grammar<char>::init(class std::basic_istream &)" (?init@?$basic_xml_grammar@D@archive@boost@@QAEXAAV?$basic_istream@DU?$char_traits@D@std@@@std@@@Z) referenced in function "protected: void __thiscall boost::archive::xml_iarchive_impl<class rs::InputArchive>::init(void)" (?init@?$xml_iarchive_impl@VInputArchive@rs@@@archive@boost@@IAEXXZ)
1>C:\Documents and Settings\Administrator\My Documents\Development\development\build\bin\Debug\repository_test_repository.exe : fatal error LNK1120: 6 unresolved externals
1>Build log was saved at "file://c:\Documents and Settings\Administrator\My Documents\Development\development\build\components\libs\repository\repository_test_repository.dir\Debug\BuildLog.htm"
1>repository_test_repository - 9 error(s), 5 warning(s)
========== Build: 0 succeeded, 1 failed, 4 up-to-date, 0 skipped ==========