[CMake] InstallRequiredSystemLibraries.cmake and Redistribution of the shared C runtime component in Visual C++

Mike Jackson mike.jackson at bluequartz.net
Thu Aug 20 19:05:29 EDT 2009


Yep. First thing I have tried, and have been using all day. I think I
may have tracked part of the problem down to a few things.

1: vcredist_x86.exe - There are multiple versions of this (all with
the same file name). You have to make sure you download the correct
version. I have VCExpress 2008 SP1. I was downloading the one for
VCExpress 2008.

2: I think I have ITK built as Debug and I am trying a "Release" build
of my main application suite. We all know that Debug and Release
builds in Windows-Land do not get along.

Boost may be another unknown (bjam.. yeech..). Far as I know I told
bjam to use a dynamically linked c runtime.

Expat, HDF5, Tiff all are built as static libraries using CMake so the
default there is to use a dynamic linked c runtime. So I think those
libraries are OK.

My own intermediate library (MXADataModel) is also built as a static
library and using CMake. So should be the same as Expat, HDF5 and Tif
from above.

Does not seem to be a redistributable package for the Debug versions
of the C/C++ runtime libs. Bummer.

Qt 4.5.1 is built as DLL's so I am hoping that will not hinder me as
everything else is built as Static libraries (to try and avoid DLL
hell .. )

ITK is currently rebuilding which will take another hour or so. I'll
report back when that is complete maybe with some good
_________________________________________________________
Mike Jackson                  mike.jackson at bluequartz.net

On Thu, Aug 20, 2009 at 6:57 PM, j s<j.s4403 at gmail.com> wrote:
> Did you try the dependency walker (available via google) to see if there may
> be any dll's you need to have in the same directory as the binary?
>
> Regards,
>
> Juan
>
> On Thu, Aug 20, 2009 at 5:03 PM, Mike Jackson <mike.jackson at bluequartz.net>
> wrote:
>>
>> So I "created" the proper paths within the VCExpress installation and
>> placed the downloaded vcredist_x86.exe file in there. CMake found it.
>> NSIS found it and included it. I ran my new installer on a "clean" XP
>> SP3 machine. Verified the vcredist.exe actually ran also. Tried to
>> launch an application and I still get an error that says the
>> application is not configured correctly.
>>
>> Still lost and Confused.
>>
>> Mike
>>
>> On Thu, Aug 20, 2009 at 5:40 PM, j s<j.s4403 at gmail.com> wrote:
>> > I don't believe that to be the case with Visual Express 2008.  I don't
>> > know
>> > how previous editions work.
>> >
>> > Can I use Express Editions for commercial use?
>> >
>> > Yes, there are no licensing restrictions for applications built using
>> > Visual
>> > Studio Express Editions.
>> >
>> > http://www.microsoft.com/express/support/faq/
>> >
>> > Juan
>> >
>> >
>> >
>> > On Thu, Aug 20, 2009 at 4:33 PM, David Cole <david.cole at kitware.com>
>> > wrote:
>> >>
>> >> Hold on there...
>> >> The Express editions are not meant to build redistributable binaries.
>> >> They're meant for personal use: i.e. -- each user compiles his own
>> >> code. I'm
>> >> pretty sure it's a violation of the Express edition license agreement
>> >> to
>> >> build binaries for other people. You need at least the "Standard"
>> >> edition of
>> >> VS to get that capability.
>> >>
>> >>
>> >> HTH,
>> >> David
>> >>
>> >> On Thu, Aug 20, 2009 at 5:11 PM, Mike Jackson
>> >> <mike.jackson at bluequartz.net> wrote:
>> >>>
>> >>> On Thu, Aug 20, 2009 at 4:06 PM, James Bigler<jamesbigler at gmail.com>
>> >>> wrote:
>> >>> > On Thu, Aug 20, 2009 at 1:51 PM, Mike Jackson
>> >>> > <mike.jackson at bluequartz.net>
>> >>> > wrote:
>> >>> >>
>> >>> >> On Thu, Aug 6, 2009 at 3:12 PM, Marcus D. Hanwell<marcus at cryos.org>
>> >>> >> wrote:
>> >>> >> > James Bigler wrote:
>> >>> >> >> On Thu, Aug 6, 2009 at 12:10 PM, Bill Hoffman
>> >>> >> >> <bill.hoffman at kitware.com <mailto:bill.hoffman at kitware.com>>
>> >>> >> >> wrote:
>> >>> >> >>
>> >>> >> >>     James Bigler wrote:
>> >>> >> >>
>> >>> >> >>
>> >>> >> >>         Well, I was using VS 2005 64 bit with SP 1.  I wonder if
>> >>> >> >> there
>> >>> >> >>         is a similar bug or if there is something else going
>> >>> >> >> wrong
>> >>> >> >>         such as what Marcus Hanwall described.
>> >>> >> >>
>> >>> >> >>
>> >>> >> >>     I am not sure what your issue is, but I know I have done
>> >>> >> >> this
>> >>> >> >> many
>> >>> >> >>     times...
>> >>> >> >>
>> >>> >> >>     -Bill
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> I checked the version numbers of the DLLs, and even checked the
>> >>> >> >> md5sum
>> >>> >> >> and everything was the same between the dlls in the WinSxS
>> >>> >> >> folder
>> >>> >> >> and
>> >>> >> >> the ones I'm distributing.  It failed on two clean systems
>> >>> >> >> without
>> >>> >> >> the
>> >>> >> >> vcredist install.  I guess I'll run vcredist as Microsoft
>> >>> >> >> suggests
>> >>> >> >> and
>> >>> >> >> see if I can trouble shoot later.
>> >>> >> >>
>> >>> >> >> It is a rather perplexing problem.
>> >>> >> >>
>> >>> >> > The link Bill supplied has all of the relevant information. In
>> >>> >> > the
>> >>> >> > "Community Discussion" section the second comment provides three
>> >>> >> > possible workarounds. We are using the third of those when
>> >>> >> > distributing
>> >>> >> > Avogadro packages for Windows. The version mismatch in the
>> >>> >> > manifests
>> >>> >> > of
>> >>> >> > the compiled executables and the manifest with the
>> >>> >> > redistributable
>> >>> >> > DLLs
>> >>> >> > is what causes the issue.
>> >>> >> >
>> >>> >> > It seems that MS has no intention of fixing this issue. We have a
>> >>> >> > clean
>> >>> >> > VM where we test new installers, as occasionally this change was
>> >>> >> > lost
>> >>> >> > and the DLLs failed to load.
>> >>> >> >
>> >>> >> > Marcus
>> >>> >>
>> >>> >> Ok, so I too have run into this problem. What is anyone doing to
>> >>> >> get
>> >>> >> around this issue?
>> >>> >>
>> >>> >> I would really like a solution that did NOT involve editing
>> >>> >> anything
>> >>> >> from VC++ install as I would have to pass those instructions on to
>> >>> >> the
>> >>> >> next Developer. Clinton's posting about including the VCRedist.exe
>> >>> >> in
>> >>> >> the NSIS installer is OK by me. Is that what everyone else is
>> >>> >> doing?
>> >>> >>
>> >>> >> Thanks
>> >>> >> --
>> >>> >> Mike Jackson
>> >>> >
>> >>> > I ended up linking against the static CRT library (/MT), but that's
>> >>> > not
>> >>> > for
>> >>> > everyone.
>> >>> > http://msdn.microsoft.com/en-us/library/ms235460.aspx
>> >>> >
>> >>> > My next choice was going to be including the VCRedist.exe in the
>> >>> > installer.
>> >>> > For some of the other projects at my company, this is what they do.
>> >>> >
>> >>> > Here are some links I've been consulting on the subject of CRT
>> >>> > library
>> >>> > (conflicts with multiple CRTs).
>> >>> >
>> >>> >
>> >>> > http://stackoverflow.com/questions/1075050/howto-multiple-versions-of-msvcrt9-as-private-sxs-assemblies
>> >>> >
>> >>> >
>> >>> > http://tedwvc.wordpress.com/2009/08/10/avoiding-problems-with-vc2005-sp1-security-update-kb971090/
>> >>> >
>> >>> >
>> >>> > http://stackoverflow.com/questions/1265792/visual-studio-2005-security-updates-and-crt-dll-versions-in-manifest
>> >>> >
>> >>> > James
>> >>> >
>> >>>
>> >>> thanks for the links. Now my head is really spinning. I have VC2008
>> >>> Express installed on WinXP SP3 and evidently the vcredist.exe is NOT
>> >>> included with that version? At least I can not find it.  So I guess I
>> >>> have to download it from MSDN (duh) and then manually set all the
>> >>> paths and all that in oder to have cmake/NSIS find and include it in
>> >>> the installer. And I thought deploying on OS X was a bit obtuse...
>> >>>
>> >>> Mike
>> >>> _______________________________________________
>> _______________________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Please keep messages on-topic and check the CMake FAQ at:
>> http://www.cmake.org/Wiki/CMake_FAQ
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.cmake.org/mailman/listinfo/cmake
>
>


More information about the CMake mailing list