This is the mail archive of the
cygwin@cygwin.com
mailing list for the Cygwin project.
Re: Help: linking a dll which uses runtime symbol on cygwin
- To: Chia-liang Kao <clkao at clkao dot org>
- Subject: Re: Help: linking a dll which uses runtime symbol on cygwin
- From: Robert Collins <robert dot collins at itdomain dot com dot au>
- Date: 02 Sep 2001 17:32:23 +1000
- Cc: cygwin at cygwin dot com
- References: <20010830084455.A29690@clk.cirx.org>
On 30 Aug 2001 08:44:55 +0800, Chia-liang Kao wrote:
> Hi,
>
> I'm porting a program developed on FreeBSD to cygwin and encounter
> some problems with linking.
>
> The problem is mainly about the perl extension. The main program
> exports some symbol for the plugins written in perl to use (via XS),
> and invokes the plugins by some function in libperl5_6_1.dll.
>
> Sorry that I'm very unfamiliar with win32. I asked several people and
> digged the mailing list. I somewhat know about the implib/declspec,
> which seems to exist for some historical issues. I also played with
> the --auto-import patched ld but in vain.
>
> Anyway, to simplify and show the scenario clearly:
>
> * A (main program)
> + links with B (libperl)
>
> * C (the plugin glueware)
> + uses some symbols from both A and B
> + is loaded by B while A is running
>
> on FreeBSD, I just cc -share C.o -o C.so, the unresolved symbols won't
> make any trouble.
>
> So how do I get the C.dll on cygwin?
Create an export library for A, and ensure that it exports the symbols.
PE - the win32 loader format - doesn't automatically export all the
symbols, and unresolved symbols at link time are not allowed.
Rob
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/