
You need to explicitly instantiate the code, see below Robert Ramey "Oliver Kania" <kania.oliver@googlemail.com> wrote in message news:1262c4ee0708080648w1f58627ercaffa141de529bb8@mail.gmail.com... Hello and thanks for the help I received so far. here is my current problem: The class I try to serialize is: class LIBPALO_NG_CLASS_EXPORT CubeCache : public CUBE_INFO { public: friend class boost::serialization::access; CubeCache(); ~CubeCache(); void setSequenceNumber( unsigned int sequenceNumber ) { m_SequenceNumber = sequenceNumber; } unsigned int getSequenceNumber() const { return m_SequenceNumber; } private: unsigned int m_SequenceNumber; template<class Archive> void serialize( Archive &ar, const unsigned int version ); }; the cpp file looks as follows: #include "CubeCache.h" #include <boost/serialization/base_object.hpp> namespace jedox { namespace palo /* palo */ { template<class Archive> void CubeCache::serialize( Archive &ar, const unsigned int version ) { // save/load base class information ar & boost::serialization::base_object<CUBE_INFO>( *this ); ar & m_SequenceNumber; } CubeCache::CubeCache(){;} CubeCache::~CubeCache(){;} } } /* jedox */ The CUBE_INFO structure serializes just fine. There are no linkage problems with the following code: int main( int argc, char* argv[] ) { CUBE_iNFO* const c = new CUBE_INFO(); std::ofstream ofs("filename"); // save data to archive { boost::archive::text_oarchive oa( ofs ); // write class instance to archive oa << ( c ); // archive and stream closed when destructors are called } return 0; } //////////////////// add this here - explicite instantiation template CubeCache::serialize<boost::archive::text_oarchive>; However, when I use CubeCache instead of CUBE_INFO in the above code, i get a linkage error: ====================================================================== libpalo_ng.obj : error LNK2019: unresolved external symbol "private: void __thiscall jedox::palo::CubeCache::serialize<class boost::archive::text_oarchive>(class boost::archive::text_oarchive &,unsigned int)" ... ====================================================================== There are no linkage problems with the library when i do not use boost::serialization. I guess this happens when the linker tries to link with the serialization library. LIBPALO_NG_CLASS_EXPORT is defined as: # define LIBPALO_NG_CLASS_EXPORT __declspec(dllexport) Regards, Oliver ------------------------------------------------------------------------------ _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users