Boost logo

Boost Users :

Subject: [Boost-users] [serialization] mingw linker problems
From: Ken (ken.appleby_at_[hidden])
Date: 2012-06-22 18:18:07


Hi,

We have an application comprised of many shared libraries. It is built
on Windows using mingw (gcc 4.4) and on Mac OS X using gcc under the Qt
4.7.0 framework.

The application has been based on boost 1_41. We are now attempting to
port to boost 1_49. We use boost.serialization and other boost libraries
as dlls.

On Mac OS X the upgrade was mostly trouble free, but with mingw we have
encountered problems with all of our libraries that use boost.serialization.

Basically, the inclusion of boost.serialization code appears to alter
the default symbol visibility of the dlls generated by mingw.

Each of our libraries consists of a declaration of a class, with public
functions, and zero or more free functions. If the library
implementation includes boost.archive or boost.serialization the public
functions of the class, and any free functions declared, are missing
from the import library, though visible in the dll.

Each of our libraries has a test executable, and with many it is a
trivial task to comment out the use of boost.serialization in the
library and test code. When we do that, there are no linker problems. As
soon as we reintroduce functions that use boost.serialization into the
library, the test function fails to find the public functions of the
library class.

Please can anyone explain this? How does the use of boost.serialization
change the global behaviour of mingw gcc in generating dll import libraries?

TIA

Ken Appleby


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net