Hi, I'm trying to create my own archive type and I'm struggling with this error message :
$ g++ test.cc -lboost_serialization /tmp/cc5aW7rV.o: In function `boost::archive::detail::pointer_oserializer
::pointer_oserializer()': test.cc:(.text._ZN5boost7archive6detail19pointer_oserializerI12sql_oarchiveN8internal4unitEEC2Ev[_ZN5boost7archive6detail19pointer_oserializerI12sql_oarchiveN8internal4unitEEC5Ev]+0x4f): undefined reference to `boost::archive::detail::archive_serializer_map ::insert(boost::archive::detail::basic_serializer const*)' /tmp/cc5aW7rV.o: In function `boost::archive::detail::pointer_oserializer ::~pointer_oserializer()': test.cc:(.text._ZN5boost7archive6detail19pointer_oserializerI12sql_oarchiveN8internal4unitEED2Ev[_ZN5boost7archive6detail19pointer_oserializerI12sql_oarchiveN8internal4unitEED5Ev]+0x24): undefined reference to `boost::archive::detail::archive_serializer_map ::erase(boost::archive::detail::basic_serializer const*)'
I can't find the relevant part of the documentation which talks about it. Adding this piece of code makes the code compile but it doesn't work:
namespace boost { namespace archive { namespace detail { template <> bool archive_serializer_map
::insert(boost::archive::detail::basic_serializer const*) { // ?? } template <> void archive_serializer_map
::erase(boost::archive::detail::basic_serializer const*) { // ?? } } } }
I'm using boost 1.43 on g++ 4.5 on linux 64bits. The code is attached. What am I missing ? Thanks, -- Maxime