From: Robert Ramey (ramey_at_[hidden])
Date: 2004-12-10 14:33:02


I'm trying to implement auto-link and build static versions of the
serialization libraries.

It seems I'm making progress but I'm sort of stuck on one point right now.

one my header files now contains:

extern BOOST_SERIALIZATION_DECL const char * ARCHIVE_SIGNATURE;
extern BOOST_SERIALIZATION_DECL unsigned int ARCHIVE_VERSION;

while the corresponding implemenation file contains:

///////////////////////////////////////////////////////////////////////
// constants used in archive signature
//This should never ever change. note that is not an std::string
// string.
BOOST_SERIALIZATION_DECL const char * ARCHIVE_SIGNATURE =
"serialization::archive";
// this should change if the capabilities are added to the library
// such that archives can be created which can't be read by previous
// versions of this library
// 1 - initial version
// 2 - made address tracking optional
// 3 - numerous changes - can't guarentee compatibility with previous
versions
BOOST_SERIALIZATION_DECL unsigned int ARCHIVE_VERSION = 3;

When I link an executable with the static library things work fine. When I
link with the dll import library I get errors indicating undefined symbols
for these const variables.

What is recommended here?

Robert Ramey