"Jan Dubois" (j...@activestate.com) writes:
> The manifest file is supposed to be generated by the compiler.  IN VS2005
> and later you need to add an excplicit runtime binding manifest to be able
> to use msvcr80.dll or msvcr90.dll from your code.  Otherwise you'll get
> a runtime error that your code has not been linked correctly.

The binary I distribute *is* compiled with the compiler from VS2008.
Without manifest. And it definitely works.

I would guess the reason the compile does not generate a manifest file, 
is that I don't need one. To wit, I have this line in my makefile.pl:

    'CCFLAGS'     => '/MT', # Debug-flag: '/Zi',

That is, I link statically to the run-time library.

Originally, I distributed the run-time DLL separately together my own DLL
(at this point, I might have compiled it with an older version of the VC++
compiler), but when a user I tried to use it from ASP, this did not work
out. I asked some C++ MVPs for advice, and it was from the I got the idea
to do a static link. 

Indeed, if I remove /MT, I do get the manifest file, but for reasons I'm
not interested in exploring, I get linking errors, so whether the mt
command works, I can't tell.

 
I would argue that this is a short-coming in ExtUtils::MM_Win32. The
file should not generate the mt command, when any of the options for
static linking has been specified. Or there should be a way to suppress 
the command.

For now I will have to document that my module does not build with
AS 1004.


-- 
Erland Sommarskog, Stockholm, esq...@sommarskog.se

Reply via email to