Boost logo

Boost-Build :

Subject: Re: [Boost-build] [boost] Boost build problem
From: Ian Emmons (iemmons_at_[hidden])
Date: 2009-09-25 19:03:08


Starting with Visual Studio 2005 (msvc-8), linkage to the run-time
libraries depends on Microsoft's infrastructure for side-by-side
execution of different versions of the same DLL. This is Microsoft's
attempt to solve the "DLL Hell" problem, in which an executable
transparently links to the first instance of a DLL found on the path,
independent of any version dependency. Clearly, this is a big
advance, but it comes at the cost of complexity. As far as I know,
the only way to deploy the C/C++ run-time is to install the .Net
framework (which contains the side-by-side execution infrastructure).
So EXE's and DLL's built with Visual Studio 2005 (msvc-8) require
the .Net 2.0 run-time, and those built with Visual Studio 2008
(msvc-9) require .Net 3.5.

On Sep 25, 2009, at 2:00 AM, Emil Dotchevski wrote:
> Volodya, perhaps you'll find this information helpful in case other
> people ask similar questions:
>
> I asked a friend of mine from Microsoft and he indicated that the way
> runtime DLLs are located depends on the OS and compiler version, and
> that the only way that is guaranteed to work is to install the
> redistributables (in case of the release runtime) or the appropriate
> version of Visual Studio (or a few other development packages.) He
> also recommended not to try to mess with the system "manually" because
> it is quite possible to break it beyond repair.
>
> Emil Dotchevski
> Reverge Studios, Inc.
> http://www.revergestudios.com/reblog/index.php?n=ReCode
>
> On Thu, Sep 24, 2009 at 10:24 PM, Vladimir Prus
> <vladimir_at_[hidden]> wrote:
>> Emil Dotchevski wrote:
>>
>>> Volodya, thanks for the suggestion again.
>>>
>>> Using the depends.exe tool from Microsoft I can see that the two
>>> missing DLLs my program needs are MSVCP80D.DLL and MSVCR80D.DLL. I'm
>>> guessing that Boost Build passes the path specified by <dll-path> in
>>> the PATH env variable and that the program itself doesn't look for
>>> these particular DLLs on the PATH. Manually adding the directory on
>>> the PATH, or even starting the program from the directory containing
>>> the DLLs also doesn't work.
>>>
>>> By now this is well beyond the scope of Boost Build but I'd still
>>> want
>>> to get it working. Any ideas?


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