Ron Blaschke wrote:
>         link -dll -def:libparrot.def -nologo -nodefaultlib -o
> pge.dll pge_parse.obj pge_gen.obj pge_opt.obj pge_parsep5.obj
> pge_parseglob.obj
> LINK : warning LNK4044: unrecognized option '/o'; ignored
> LINK : fatal error LNK1181: cannot open input file 'pge.dll'
> NMAKE : fatal error U1077: 'link' : return code '0x49d'
> Stop.

I've had a look at things, here's what necessary to get F<pge.dll> to
link.

1) F<pge_gen.c> uses C<vsnprintf>, which is named C<_vsnprintf> on
MSWin32.  A simple hack would be to add the following to F<pge_gen.c>.

    #ifdef WIN32
    #  define vsnprintf _vsnprintf
    #endif

2) Linkage for F<pge.dll> should read something like this.

    link -dll -nologo -nodefaultlib -out:pge.dll pge_parse.obj
    pge_gen.obj pge_opt.obj pge_parsep5.obj pge_parseglob.obj
    msvcrt.lib kernel32.lib

IMHO, compilation and linkage feels quite messy as a whole.  I am not
sure how to get the current link command to look like the one above,
without doing something akin to F<dynclasses/build.pl>
(cf line 40+).

Ron






Reply via email to