serialization linking issue - mac os x 10.6 + boost 1.45

Hi i've got a new problem with my code, now that I'm compiling and linking against the 1.45 boost libraries. When I compile and link, I now get these errors at the link stage: "boost::serialization::version<Model::KeyValue<QPointF> >::value", referenced from: __ZN5boost13serialization7versionIN5Model8KeyValueI7QPointFEEE5valueE$non_lazy_ptr in libDataModel.a(Project.o) __ZN5boost13serialization7versionIN5Model8KeyValueI7QPointFEEE5valueE$non_lazy_ptr in libRendering.a(EditorDocument.o) __ZN5boost13serialization7versionIN5Model8KeyValueI7QPointFEEE5valueE$non_lazy_ptr in libDataModel.a(Serialization.o) (maybe you meant: __ZN5boost13serialization7versionIN5Model8KeyValueI7QPointFEEE5valueE$non_lazy_ptr) I have version definitions for the template types using boost serialization, along the form of: namespace boost { namespace serialization { template<typename T, int scale, int defaultCurveType> struct version< Model::PropertyArrayT<T, scale, defaultCurveType> > { typedef mpl::int_<1> type; typedef mpl::integral_c_tag tag; BOOST_STATIC_CONSTANT(unsigned int, value = version::type::value); }; template<typename T> struct version< Model::KeyValue<T> > { typedef mpl::int_<1> type; typedef mpl::integral_c_tag tag; BOOST_STATIC_CONSTANT(unsigned int, value = version::type::value); }; } } I tried instantiating (in the .cpp of the header where this stuff is declared), like this: boost::serialization::version< Model::KeyValue<QPointF> > a; but the link error for this type still persists. The code is compiled into a library, and then the link step fails on the application. I hope its not the linker being extra ingenious and throwing this fake definition away. Can anyone see what I'm doing wrong? The code works OK if I use/link against boost 1.42. Thanks -- John Clayton Skype: johncclayton
participants (1)
-
John Clayton