On 7/28/2015 8:27 AM, Edward Diener wrote: > Without trying immediately to give specific code for what is a large > project, I am getting linker errors when trying to link a second shared > library which depends on a first shared library that has linked > successfully. The errors are: > > xml_wgrammar.o:xml_wgrammar.cpp:(.rdata$_ZTVN5boost7archive21xml_archive_exceptionE[__ZTVN5boost7archive21xml_archive_exceptionE]+0x20): > undefined reference to `virtual thunk to > boost::archive::archive_exception::what() const' > xml_wgrammar.o:xml_wgrammar.cpp:(.rdata$_ZTCN5boost7archive21xml_archive_exceptionE4_NS0_17archive_exceptionE[__ZTCN5boost7archive21xml_archive_exceptionE4_NS0_17archive_exceptionE]+0x38): > undefined reference to `virtual thunk to > boost::archive::archive_exception::what() const' > collect2.exe: error: ld returned 1 exit status > > The xml_wgrammar.o file is being linked into the second shared library. > The xml_wgrammar.cpp file includes xml_archive_exception.hpp. The > xml_archive_exception.hpp includes and derives from > archive_exception.hpp. Both xml_archive_exception and archive_exception > have their implementation in the first shared library and have their > necessary implementations exported. The implementation of > archive_exception::what() is exported in the first shared library and is > imported when seen by xml_wgrammar.cpp. > > What is so strange is that there is no call to archive_exception::what() > in the preprocessed output of xml_wgrammar.cpp. > > Does anybody have any idea what might be going on here before I take the > time to reduce this situation into a short enough fragment to show in a > subsequent thread in this post ?
After adding an xml_archive_exception::what() implementation which just calls its base class archive_exception::what() implementation I now receive the linker errors: xml_wgrammar.o: In function `ZN5boost7archive21xml_archive_exceptionD1Ev': xml_archive_exception.hpp:34: undefined reference to `vtable for boost::archive::xml_archive_exception' xml_archive_exception.hpp:34: undefined reference to `vtable for boost::archive::xml_archive_exception' xml_archive_exception.hpp:34: undefined reference to `vtable for boost::archive::xml_archive_exception' xml_archive_exception.hpp:34: undefined reference to `VTT for boost::archive::xml_archive_exception' collect2.exe: error: ld returned 1 exit status Perhaps this will give someone an idea of what might be happening. ------------------------------------------------------------------------------ _______________________________________________ Mingw-w64-public mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
