Boost logo

Boost :

From: Lois Goldthwaite (loisg_at_[hidden])
Date: 2000-10-16 07:50:33

The message about LIBCD means that this module has been built using the
/MLd (use debug single-threaded static C runtime library) option, and
some other bit has been built with a different option.

/ML(d) is the compiler default, but my personal recommendation on
Windows is always to use /MD(d) -- the multi-threaded DLL runtime. With
any of the static runtime options, each DLL and executable has its own
memory manager, and if you pass allocated memory across a boundary
(including things like returning by value a class whose constructor
involves allocating memory for internal use), then you can run into the
dreaded "debug heap allocation error" messages. With /MD(d), then
everything shares the same memory manager.

That is an over-simplification, but the complications of using /ML in
conjunction with DLLs I haven't wanted to grapple with. See article
Q94248 in the MSDN knowledge base for more gory details.


Anton Gluck wrote:
> LINK : warning LNK4098: defaultlib "LIBCD" conflicts with use of other
> libs; use /NODEFAULTLIB:library
> The first one is probably not so important, but I'm not sure about the
> second one. Do you have any suggestions?

Boost list run by bdawes at, gregod at, cpdaniel at, john at