I just tried to install Devel::Cover on my home box running WinXP and Strawberry Perl 5.8.8. It failed with:
C:\DOCUME~1\linjoh\LOCALS~1\Temp\cpan\build\Devel-Cover-0.63>g++ -o bl +ib\arch\auto\Devel\Cover\Cover.dll -Wl,- -base-file -Wl,dll.base -mdll -s -L"c:\strawberry-perl\perl\lib\CORE" +-L"c:\strawberry-perl\mingw\lib" Cover.o -Wl,--image-base,0x31410000 C:\strawberry-perl\perl\lib\CORE\libperl +58.a -lmsvcrt -lmoldname -lkernel32 -lus er32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -lolea +ut32 -lnetapi32 -luuid -lws2_32 -lmpr -l winmm -lversion -lodbc32 -lodbccp32 dll.exp Cover.o:Cover.c:(.text+0x2002): undefined reference to `Perl_pp_nextst +ate' Cover.o:Cover.c:(.text+0x2050): undefined reference to `Perl_pp_nextst +ate' Cover.o:Cover.c:(.text+0x20c2): undefined reference to `Perl_pp_setsta +te' Cover.o:Cover.c:(.text+0x2110): undefined reference to `Perl_pp_setsta +te' Cover.o:Cover.c:(.text+0x2182): undefined reference to `Perl_pp_dbstat +e' Cover.o:Cover.c:(.text+0x21d0): undefined reference to `Perl_pp_dbstat +e' Cover.o:Cover.c:(.text+0x2237): undefined reference to `Perl_pp_enters +ub' Cover.o:Cover.c:(.text+0x2270): undefined reference to `Perl_pp_enters +ub' Cover.o:Cover.c:(.text+0x22d7): undefined reference to `Perl_pp_cond_e +xpr' Cover.o:Cover.c:(.text+0x2377): undefined reference to `Perl_pp_and' Cover.o:Cover.c:(.text+0x2417): undefined reference to `Perl_pp_andass +ign' Cover.o:Cover.c:(.text+0x24b7): undefined reference to `Perl_pp_or' Cover.o:Cover.c:(.text+0x2557): undefined reference to `Perl_pp_orassi +gn' Cover.o:Cover.c:(.text+0x25f7): undefined reference to `Perl_pp_xor' Cover.o:Cover.c:(.text+0x2697): undefined reference to `Perl_pp_requir +e' Cover.o:Cover.c:(.text+0x2737): undefined reference to `Perl_pp_exec' collect2: ld returned 1 exit status
This is the same error CPAN testers see. But looking at the CPAN Testers Matrix says it seem to work on Cygwin, at least some of the time.

And, ack'ing through my cygwin perl directory shows that these symbols are present in:

Binary file 5.8\cygwin\CORE\libperl.a matches Binary file 5.8\cygwin\CORE\libperl.dll.a matches

But ack'ing the Strawberry installation only matches header files (as with Cygwin). No match on .\lib\CORE\libperl58.a (or ./bin/perl58.dll?) where I suppose it would go if exported.

So, could this be because of the way Strawberry Perl is built? Is there some way to have it export those symbols similar to what Cygwin does?

Looking at the diff between my configuration and a working Cygwin Perl configuration, there are two ld flags that look promising (-Wl,--export-all-symbols and -Wl,--enable-auto-import).

I won't build a new Perl right now (getting a bit late), but maybe someone with a bit more clue can give me a hint on whether this sounds like the way to go?

Thanks,

/J


In reply to Problems installing Devel::Cover on Strawberry, seems to work on Cygwin by jplindstrom

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.