[serialization] BOOST_CLASS_EXPORT_GUID cant link

Hi, Im trying to use the BOOST_CLASS_EXPORT_GUID, but if i use it, i cant link my project. if got these error messages: /gcc-4.1.2/debug/threading-multi/crabd.o:/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../include/c++/4.1.2/exception:57: multiple definition of `boost::archive::detail::guid_initializerwater::status::instance' bin/gcc-4.1.2/debug/threading-multi/seal.o:/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../include/c++/4.1.2/exception:57: first defined here bin/gcc-4.1.2/debug/threading-multi/water.o:/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../include/c++/4.1.2/exception:57: multiple definition of `boost::archive::detail::guid_initializerwater::status::instance' bin/gcc-4.1.2/debug/threading-multi/seal.o:/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../include/c++/4.1.2/exception:57: first defined here The file with the macros is just one time defined. Is there an other possible reason than multiple definition or a more hidden way to define it more than one time? Kind Regards Manuel Jung

This most likely occurs if you have something like the following in more than one module: #include "water.hpp" // which icludes BOOST...EXPORT #include "../?iarchive.hpp" #include "../?oarchive.hpp" to fix this - make sure you include .../archive.hpp in only one module. Robert Ramey Manuel Jung wrote:
Hi,
Im trying to use the BOOST_CLASS_EXPORT_GUID, but if i use it, i cant link my project. if got these error messages:
/gcc-4.1.2/debug/threading-multi/crabd.o:/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../include/c++/4.1.2/exception:57: multiple definition of `boost::archive::detail::guid_initializerwater::status::instance' bin/gcc-4.1.2/debug/threading-multi/seal.o:/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../include/c++/4.1.2/exception:57: first defined here bin/gcc-4.1.2/debug/threading-multi/water.o:/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../include/c++/4.1.2/exception:57: multiple definition of `boost::archive::detail::guid_initializerwater::status::instance' bin/gcc-4.1.2/debug/threading-multi/seal.o:/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../include/c++/4.1.2/exception:57: first defined here
The file with the macros is just one time defined. Is there an other possible reason than multiple definition or a more hidden way to define it more than one time? Kind Regards Manuel Jung

Hi, Yes this did the trick, thanks. The EXPORT Scripts were in a header file and thus included more than one time from different cpp files. Thanks! Greetings Manuel Jung
This most likely occurs if you have something like the following in more than one module:
#include "water.hpp" // which icludes BOOST...EXPORT #include "../?iarchive.hpp" #include "../?oarchive.hpp"
to fix this - make sure you include .../archive.hpp in only one module.
Robert Ramey
Manuel Jung wrote:
Hi,
Im trying to use the BOOST_CLASS_EXPORT_GUID, but if i use it, i cant link my project. if got these error messages:
/gcc-4.1.2/debug/threading-multi/crabd.o:/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../include/c++/4.1.2/exception:57: multiple definition of `boost::archive::detail::guid_initializerwater::status::instance'
bin/gcc-4.1.2/debug/threading-multi/seal.o:/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../include/c++/4.1.2/exception:57:
first defined here
bin/gcc-4.1.2/debug/threading-multi/water.o:/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../include/c++/4.1.2/exception:57:
multiple definition of `boost::archive::detail::guid_initializerwater::status::instance'
bin/gcc-4.1.2/debug/threading-multi/seal.o:/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../include/c++/4.1.2/exception:57:
first defined here
The file with the macros is just one time defined. Is there an other possible reason than multiple definition or a more hidden way to define it more than one time? Kind Regards Manuel Jung

I've been putting these macros into cpp files where possible, which prevents this sort of thing from happening, but I am doing this stuff in libraries so that's really the only option. James
-----Original Message----- From: boost-users-bounces@lists.boost.org [mailto:boost-users-bounces@lists.boost.org] On Behalf Of Manuel Jung Sent: 05 July 2007 08:30 To: boost-users@lists.boost.org Subject: Re: [Boost-users] [serialization] BOOST_CLASS_EXPORT_GUID cant link
Hi,
Yes this did the trick, thanks. The EXPORT Scripts were in a header file and thus included more than one time from different cpp files. Thanks! Greetings Manuel Jung
This most likely occurs if you have something like the following in more than one module:
#include "water.hpp" // which icludes BOOST...EXPORT #include "../?iarchive.hpp" #include "../?oarchive.hpp"
to fix this - make sure you include .../archive.hpp in only one module.
Robert Ramey
Manuel Jung wrote:
Hi,
Im trying to use the BOOST_CLASS_EXPORT_GUID, but if i use it, i cant link my project. if got these error messages:
/gcc-4.1.2/debug/threading-multi/crabd.o:/usr/lib/gcc/i486-lin ux-gnu/4.1.2/../../../../include/c++/4.1.2/exception:57:
multiple definition of `boost::archive::detail::guid_initializerwater::status::instance'
bin/gcc-4.1.2/debug/threading-multi/seal.o:/usr/lib/gcc/i486-l inux-gnu/4.1.2/../../../../include/c++/4.1.2/exception:57:
first defined here
bin/gcc-4.1.2/debug/threading-multi/water.o:/usr/lib/gcc/i486- linux-gnu/4.1.2/../../../../include/c++/4.1.2/exception:57:
multiple definition of `boost::archive::detail::guid_initializerwater::status::instance'
first defined here
The file with the macros is just one time defined. Is
bin/gcc-4.1.2/debug/threading-multi/seal.o:/usr/lib/gcc/i486-l inux-gnu/4.1.2/../../../../include/c++/4.1.2/exception:57: there an other
possible reason than multiple definition or a more hidden way to define it more than one time? Kind Regards Manuel Jung
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
This message (including any attachments) contains confidential and/or proprietary information intended only for the addressee. Any unauthorized disclosure, copying, distribution or reliance on the contents of this information is strictly prohibited and may constitute a violation of law. If you are not the intended recipient, please notify the sender immediately by responding to this e-mail, and delete the message from your system. If you have any questions about this e-mail please notify the sender immediately.
participants (3)
-
Hughes, James
-
Manuel Jung
-
Robert Ramey