This is the mail archive of the cygwin@sources.redhat.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

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 cygwin-unsubscribe@sourceware.cygnus.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]