delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2004/02/12/19:55:59

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Message-ID: <402C2069.7070403@users.sourceforge.net>
Date: Thu, 12 Feb 2004 19:55:05 -0500
From: Yaakov Selkowitz <yselkowitz AT users DOT sourceforge DOT net>
User-Agent: Mozilla Thunderbird 0.5 (Windows/20040207)
MIME-Version: 1.0
To: cygwin AT cygwin DOT com
Subject: Building dll's and executables in same package
X-Enigmail-Version: 0.83.2.0
X-Enigmail-Supports: pgp-inline, pgp-mime
X-Authentication-Info: Submitted using SMTP AUTH at out003.verizon.net from [68.161.51.220] at Thu, 12 Feb 2004 18:55:10 -0600

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

OK, after a lot of time looking at the user guide, FAQ, and Google, I
finally figured out (I think) how to get DLLs to build with the
autotools.  But now I'm having troubles with building the executables
from the same package that depend on this library.

My "test case" is fribidi.  In short:

1) I added -no-undefined to libfribidi_la_LDFLAGS in Makefile.in
(there's only one, no subdirs).

2) I added an empty main function to one of the src .c files:

+int main ()
+{ return 0; }

dlltool seems to build cygfribidi-0.dll properly, then make continues to
build fribidi.exe, which depends on libfribidi, and the following happens:

/bin/sh ./libtool --mode=link gcc  -O2 -Wall  -lm -o fribidi.exe
fribidi_main.o getopt.o getopt1.o libfribidi.la  -L. -lfribidi
generating import library for `cygfribidi-0.dll'
dlltool --as=as --dllname cygfribidi-0.dll --def
.libs/cygfribidi-0.dll-def --output-lib .libs/libimp-cygfribidi-0.a
gcc -O2 -Wall -o .libs/fribidi.exe fribidi_main.o getopt.o getopt1.o
- -L/home/Yaakov/devel/testing/fribidi/fribidi-0.10.4/.build
.libs/libimp-cygfribidi-0.a
fu000001.o(.idata$3+0xc): undefined reference to
'__libs_libimp_cygfribidi_0_a_iname'
nmth000000.o(.idata$4+0x0): undefined reference to
`__nm__fribidi_version_info'
Info: resolving _fribidi_version_info by linking to
__imp__fribidi_version_info (auto-import)
collect2: ld returned 1 exit status
make: *** [fribidi.exe] Error 1

So what am I missing now?  Or is this a problem with the code?

Yaakov


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (MingW32)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFALCBnpiWmPGlmQSMRArgKAJ9nsa7uI5xA7B5lw8pa05ELudDwhwCglX8u
TM0FBClujeDL2hpLjAZA854=
=lNGc
-----END PGP SIGNATURE-----


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019