|
Boost : |
Subject: [boost] serialization linking issue - mac os x 10.6 + boost 1.45
From: John Clayton (john_clayton_at_[hidden])
Date: 2011-01-07 14:49:52
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
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk