Robert Ramey wrote:
question: are you compiling for release or debug. In some release configurations comilers are over zealous in eliminating code not referenced by name. I've done most of my experiementing with release mode. In attempting debug, I get the what I consider to be the same results.
Are you building with bjam or with your own make or ? Its possible that bjam includes some command line switches or something that's different than you are. In fact, its possible that whatever is sending the command to the OS is actually truncating it - at after about 14 modules. I'm using bjam v1 (from 1.32.0 release). I've attempted placing exactly the requirements that I see in serialization/build's Jamfile in mine and see no affect. I'll have to use these unix commands to snoop some more. I have looked at the serialization library source code enough to see the looked for stuff apparently present. Can't say I understand what I'm looking at though...
You might try building a library out of all the modules in your library. Then link the main module with your application library. This will keep the command line shorter. It also is useful to automatically eliminate "dead code" in a large application (which it seems your's might be).
I'm building a shared library. It must remain so because the data set is shared with python via boost.python. The only thing I can think to try is to link directly to the serialization library's source files. Haven't done this. Doesn't seem worth doing...