auto-link, DLLS and exported constants

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
participants (2)
-
John Maddock
-
Robert Ramey