From: Markus Schöpflin (markus.schoepflin_at_[hidden])
Date: 2002-12-05 10:02:36
David Abrahams wrote:
> I think there was much confusion about the meaning of runtime-link
> in v1; many people thought they should set it to dynamic in order
> to build a shared library. I am concerned about the name "link"
> being even more confusable in that same way.
I'm sorry, but I fail to see how the current suggestion can model the
behaviour of runtime-link as it works in v1.
For MSVC, it currently controls the addition of /MD(d), ML(d) or
/MT(d) to the compiler command line. It's a flag used at compile time
and it affects the object code generated. You can't mix object code
with different runtime library settings when linking.
This has nothing to do with linking to the system libraries, like
gdi32 or user32. You only select if you want debug or release builds
for those, there is no choice for static or dynamic linking, AFAIK.
On the other hand, if you link to a DLL that uses the dynamic C
runtime (/MT(d)) you should link your application using the dynamic C
runtime as well, at least this is what Microsoft recommends. This
means, that if you link with MFC for example, you have to use /MT(d)
when compiling your code, not just when linking.
Maybe we need a completely different (ms specific) flag for this?
After all, it's a problem that only occurs on windows platforms.
Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk