On 1/2/2016 8:53 AM, Eli Zaretskii wrote:
Cc: [email protected], [email protected]
From: Ken Brown <[email protected]>
Date: Sat, 2 Jan 2016 08:31:26 -0500
-XSParagraph_la_LDFLAGS=-no-undefined -avoid-version -module
$(PERL_CONF_cccdlflags)
+XSParagraph_la_LDFLAGS=-no-undefined -avoid-version -module
$(PERL_CONF_cccdlflags) -L$(PERL_INC) -lperl
I don't think it's correct to use literally "-L$(PERL_INC) -lperl",
although it might be in many installations. The correct values should
obtained from "perl -V:<variable>", and I already provided the
variables that should be used here. E.g., if the user has Active Perl
installed, like I do, the "-lperl" part should be replaced with
"-lperl520" (for Perl 5.20.X).
On Cygwin, "perl -V:libperl" returns "libperl='cygperl5_22.dll';", but
you wouldn't guess from this that you should use "-lperl" for linking
(i.e., the actual import library is libperl.dll.a).
That's an unfortunate choice by the Cygwin Perl maintainers, I'd say.
Why isn't the import library named libcygperl.dll.a or something
similar?
This is not specific to Perl. It is the standard way import libraries
are named on Cygwin Typically, for a shared library foo, the DLL is
cygfoo.dll (possibly with a version number), and the import library is
libfoo.dll.a. The linker knows how to interpret "-lfoo" accordingly.
Ken