Subject: Re: [Boost-build] [boost] Boost build problem
From: Johan Nilsson (r.johan.nilsson_at_[hidden])
Date: 2009-09-28 03:41:19
Ian Emmons wrote:
> 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.
AFAIK, .NET runtime is not needed for _native_ C++ applications. Just
installing the runtime using the supplied merge modules (CRT + policy)
should work just fine.
IIRC it is also _possible_ (even though perhaps not officially supported) to
install the needed runtime DLLs in the same directory as the executable with
a specially crafted external manifest.
> 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.
>> 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
>>>> to get it working. Any ideas?
> Unsubscribe & other changes:
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