Subject: RE: Question
From: "Jeff Lu" <[email-masked]>
To: "Charles S. Wilson" <[email-masked]>
Cc: <[email-masked]>
Date: Tue, 24 Oct 2000 11:04:15 -0400

I compiled it with CFLAGS=-DGDBM_STATIC such as this
gcc -o /home/jeff/getdata.cgi getdata.c -lgdbm utils.c -DGDBM_STATIC

This takes care of the rename problem but am still getting dbm_open,
dbm_fetch etc. as undefined reference

I've even tried to explicitly link it to /usr/lib/libgdbm.a but that didn't
help

-----Original Message-----
From: Charles S. Wilson [mailto:[email-masked]]
Sent: Monday, October 23, 2000 8:29 PM
To: Jeff Lu
Cc: [email-masked]
Subject: Re: Question

Jeff Lu wrote:
>
> I've downloaded and installed cygwin & gdbm-1.8.0.

Please read /usr/doc/Cygwin/gdbm-1.8.0.README.

Basically, gdbm provides wrapper header files so that you can use gdbm
to provide dbm and ndbm functions -- but you must link to the gdbm
library to do so.  -lgdbm.

Also, since by default ld will link using the dll, the header files
reflect this.  That's why you get _imp__dbm_open.  If you want to link
statically, you have to (a) set CFLAGS=-DGDBM_STATIC when compiling, and
use "-static" when linking.  Then, functions don't get renamce (that's
part (a)) and you link to the statlib instead of the dll-importlib
(that's part (b)).

Please search the archives; there have been several links to informative
webpages posted recently concerning dll's and how they work.

--Chuck

>
> When tried to compile programs that uses dbm functions such as:
>
> gcc -o /home/jeff/getzip.cgi getzip.c utils.c -lndbm
>
> I got /usr/bin/ld: cannot find -lndbm
>
> gcc -o /home/jeff/getzip.cgi getzip.c utils.c -lgdbm
> I got errors on dbm_open, dbm_fetch etc as undefined reference
>
> Please see attached error file.
>
> This is weird.  Some dbm calls got renamed to "_imp__dbm_open" during
> compile.
>

--
Want to unsubscribe from this list?
Send a message to [email-masked]